#include <iostream> #include <vector> int main() { int n, k; std::cin>>n>>k; int year[n*n]; for(int i = 0; i < n*n; ++i) year[i] = 2020; std::vector<int> diffs; diffs.push_back(1); std::cin>>year[1]; if(n == 1) { std::cout<<year[1]<<"\n"; return 0; } std::cin>>year[2]; int val; std::cin>>val; if(val < year[2]) year[2] = val; for(int r = 3; r <= n; ++r) { if(r % 2 == 1) diffs.push_back(1); int v[r + 1]; for(int i = 0; i < r+1; ++i) v[i] = 0; for(int c = 1; c <= (r / 2) + (r % 2); ++c) { if(c == 1) v[c] = r; else { v[c] = v[c - 1] + diffs[c - 1]; ++ diffs[c - 1]; } std::cin>>val; if((year[v[c]] == 2020) || (year[v[c]] > val)) year[v[c]] = val; } int a = (r / 2) + (r % 2); int b = a; if(r % 2 == 0) ++b; for(int c = 1; c <= r / 2; ++c) { v[a + c] = v[b - c]; std::cin>>val; if((year[v[a + c]] == 2020) || (year[v[a + c]] > val)) year[v[a + c]] = val; } } int res = 2020; for(int i = 1; i <= k; ++i) { if(year[i] < res) res = year[i]; } std::cout<<res<<"\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 | #include <iostream> #include <vector> int main() { int n, k; std::cin>>n>>k; int year[n*n]; for(int i = 0; i < n*n; ++i) year[i] = 2020; std::vector<int> diffs; diffs.push_back(1); std::cin>>year[1]; if(n == 1) { std::cout<<year[1]<<"\n"; return 0; } std::cin>>year[2]; int val; std::cin>>val; if(val < year[2]) year[2] = val; for(int r = 3; r <= n; ++r) { if(r % 2 == 1) diffs.push_back(1); int v[r + 1]; for(int i = 0; i < r+1; ++i) v[i] = 0; for(int c = 1; c <= (r / 2) + (r % 2); ++c) { if(c == 1) v[c] = r; else { v[c] = v[c - 1] + diffs[c - 1]; ++ diffs[c - 1]; } std::cin>>val; if((year[v[c]] == 2020) || (year[v[c]] > val)) year[v[c]] = val; } int a = (r / 2) + (r % 2); int b = a; if(r % 2 == 0) ++b; for(int c = 1; c <= r / 2; ++c) { v[a + c] = v[b - c]; std::cin>>val; if((year[v[a + c]] == 2020) || (year[v[a + c]] > val)) year[v[a + c]] = val; } } int res = 2020; for(int i = 1; i <= k; ++i) { if(year[i] < res) res = year[i]; } std::cout<<res<<"\n"; } |