#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; int p; cin >> p; vector< vector<int> > W; vector< vector<int> > K(n+1); vector<int>A; A.push_back(0); W.push_back(A); int star=2021; K[0].push_back(0); K[0].push_back(0); for(int i=1; i<=n; i++) { vector <int> G; K[i].assign(i+2, 0); G.push_back(0); for(int j=1; j<=i; j++) { int a; cin >> a; G.push_back(a); } G.push_back(0); W.push_back(G); } for(int i=1; i<=n; i++) { for(int j=i; j<=n; j++) { if( (K[j-1][i]+i) > p) { break; } else { K[j][i]=K[j-1][i]+i; star=min(star, W[j][i]); } } } cout << star <<endl; }
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 | #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; int p; cin >> p; vector< vector<int> > W; vector< vector<int> > K(n+1); vector<int>A; A.push_back(0); W.push_back(A); int star=2021; K[0].push_back(0); K[0].push_back(0); for(int i=1; i<=n; i++) { vector <int> G; K[i].assign(i+2, 0); G.push_back(0); for(int j=1; j<=i; j++) { int a; cin >> a; G.push_back(a); } G.push_back(0); W.push_back(G); } for(int i=1; i<=n; i++) { for(int j=i; j<=n; j++) { if( (K[j-1][i]+i) > p) { break; } else { K[j][i]=K[j-1][i]+i; star=min(star, W[j][i]); } } } cout << star <<endl; } |