// 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; } |