// PA1B.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include<vector>
using namespace std;
vector<int> current;
vector<int> oneUp;
vector<int> twoUp;
int n, k;
int m;
int main()
{
std::ios_base::sync_with_stdio(false);
cin >> n >> k;
cin >> m;
twoUp.push_back(1);
if (n > 1)
{
if (n == 2)
{
if (k >= 2)
{
int j;
cin >> j;
if (j < m)
m = j;
cin >> j;
if (j < m)
m = j;
}
else
{
cin >> k;
cin >> k;
}
}
else
{
int temp;
cin >> temp;
if (temp < m)
m = temp;
oneUp.push_back(2);
cin >> temp;
if (temp < m)
m = temp;
oneUp.push_back(2);
for (int i = 2; i < n; i++)
{
for (int j = 0; j < i + 1; j++)
{
cin >> temp;
int value = 0;
if (j == 0)
{
value = oneUp[0] + 1;
}
else if (j == i)
{
value = oneUp[j - 1] + 1;
}
else
{
value = oneUp[j - 1] + oneUp[j] + 1 - twoUp[j - 1];
}
if (value <= k && temp < m)
m = temp;
current.push_back(value);
}
twoUp = oneUp;
oneUp = current;
current.clear();
}
}
}
cout << m;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | // PA1B.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> #include<vector> using namespace std; vector<int> current; vector<int> oneUp; vector<int> twoUp; int n, k; int m; int main() { std::ios_base::sync_with_stdio(false); cin >> n >> k; cin >> m; twoUp.push_back(1); if (n > 1) { if (n == 2) { if (k >= 2) { int j; cin >> j; if (j < m) m = j; cin >> j; if (j < m) m = j; } else { cin >> k; cin >> k; } } else { int temp; cin >> temp; if (temp < m) m = temp; oneUp.push_back(2); cin >> temp; if (temp < m) m = temp; oneUp.push_back(2); for (int i = 2; i < n; i++) { for (int j = 0; j < i + 1; j++) { cin >> temp; int value = 0; if (j == 0) { value = oneUp[0] + 1; } else if (j == i) { value = oneUp[j - 1] + 1; } else { value = oneUp[j - 1] + oneUp[j] + 1 - twoUp[j - 1]; } if (value <= k && temp < m) m = temp; current.push_back(value); } twoUp = oneUp; oneUp = current; current.clear(); } } } cout << m; } |
English