#include <bits/stdc++.h> using namespace std; struct butla{ int rocznik, dp; }; vector <butla> t[2001]; int main() { int N, M; cin >> N >> M; int minRocznik = 2020; butla x; x.rocznik = 2020; x.dp = 0; t[0].push_back(x); t[0].push_back(x); for(int i = 1; i <= N; i++){ butla x; x.dp = 0; x.rocznik = 2020; t[i].push_back(x); for(int j = 0; j < i; j++){ butla x; cin >> x.rocznik; if(i == 1){ x.dp = 1; minRocznik = x.rocznik; } else x.dp = 0; t[i].push_back(x); } x.dp = 0; x.rocznik = 2020; t[i].push_back(x); } /* for(int i = 0; i <= N; i++){ for(int j = 0; j < t[i].size(); j++){ cout << "R = " << t[i][j].rocznik << ", d = " << t[i][j].dp << " | "; } cout << "\n"; } */ for(int i = 2; i <= N; i++){ for(int j = 1; j < t[i].size() - 1; j++){ //cout << "I = " << i << ", J = " << j << "\n"; //cout << "t[i][j] = " << t[i - 1][j - 1].dp << " + " << t[i - 1][j].dp << " - " << t[i - 2][j - 1].dp << "\n"; t[i][j].dp = t[i - 1][j - 1].dp + t[i - 1][j].dp - t[i - 2][j - 1].dp + 1; //cout << t[i][j].dp << "\n"; if(t[i][j].dp <= M) minRocznik = min(minRocznik, t[i][j].rocznik); } //cout << "\n"; } cout << minRocznik << "\n"; /* for(int i = 0; i <= N; i++){ for(int j = 0; j < t[i].size(); j++){ cout << "R = " << t[i][j].rocznik << ", d = " << t[i][j].dp << " | "; } cout << "\n"; } */ }
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 | #include <bits/stdc++.h> using namespace std; struct butla{ int rocznik, dp; }; vector <butla> t[2001]; int main() { int N, M; cin >> N >> M; int minRocznik = 2020; butla x; x.rocznik = 2020; x.dp = 0; t[0].push_back(x); t[0].push_back(x); for(int i = 1; i <= N; i++){ butla x; x.dp = 0; x.rocznik = 2020; t[i].push_back(x); for(int j = 0; j < i; j++){ butla x; cin >> x.rocznik; if(i == 1){ x.dp = 1; minRocznik = x.rocznik; } else x.dp = 0; t[i].push_back(x); } x.dp = 0; x.rocznik = 2020; t[i].push_back(x); } /* for(int i = 0; i <= N; i++){ for(int j = 0; j < t[i].size(); j++){ cout << "R = " << t[i][j].rocznik << ", d = " << t[i][j].dp << " | "; } cout << "\n"; } */ for(int i = 2; i <= N; i++){ for(int j = 1; j < t[i].size() - 1; j++){ //cout << "I = " << i << ", J = " << j << "\n"; //cout << "t[i][j] = " << t[i - 1][j - 1].dp << " + " << t[i - 1][j].dp << " - " << t[i - 2][j - 1].dp << "\n"; t[i][j].dp = t[i - 1][j - 1].dp + t[i - 1][j].dp - t[i - 2][j - 1].dp + 1; //cout << t[i][j].dp << "\n"; if(t[i][j].dp <= M) minRocznik = min(minRocznik, t[i][j].rocznik); } //cout << "\n"; } cout << minRocznik << "\n"; /* for(int i = 0; i <= N; i++){ for(int j = 0; j < t[i].size(); j++){ cout << "R = " << t[i][j].rocznik << ", d = " << t[i][j].dp << " | "; } cout << "\n"; } */ } |