#include <iostream>
#include <vector>
using namespace std;
struct bottle
{
int depth;
int value;
};
int main()
{
int maximum = 2020;
vector < vector <bottle> > bottles;
int h, n, temp;
cin >> h >> n;
for(int i = 0; i < h; i++)
{
bottles.push_back(vector <bottle>());
for(int j = 0; j < i + 1; j++)
{
cin >> temp;
bottles[i].push_back(bottle {0, temp});
}
}
bottles[0][0].depth = 1;
bottles[1][0].depth = 2;
bottles[1][1].depth = 2;
for(int i = 3; i <= h; i++)
{
bottles[i - 1][0].depth = i;
bottles[i - 1][i - 1].depth = i;
int k = i - 2;
for(int j = 1; j < (i + 1) / 2; j++)
{
bottles[i - 1][j].depth = bottles[i - 1][j - 1].depth + k;
bottles[i - 1][i - j - 1].depth = bottles[i - 1][i - j].depth + k;
k -=2;
}
}
for(int i = 0; i < h; i++)
{
for(int j = 0; j < i + 1; j++)
{
if(bottles[i][j].depth <= n && bottles[i][j].value < maximum)
{
maximum = bottles[i][j].value;
}
}
}
cout << maximum << endl;
return 0;
}
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 | #include <iostream> #include <vector> using namespace std; struct bottle { int depth; int value; }; int main() { int maximum = 2020; vector < vector <bottle> > bottles; int h, n, temp; cin >> h >> n; for(int i = 0; i < h; i++) { bottles.push_back(vector <bottle>()); for(int j = 0; j < i + 1; j++) { cin >> temp; bottles[i].push_back(bottle {0, temp}); } } bottles[0][0].depth = 1; bottles[1][0].depth = 2; bottles[1][1].depth = 2; for(int i = 3; i <= h; i++) { bottles[i - 1][0].depth = i; bottles[i - 1][i - 1].depth = i; int k = i - 2; for(int j = 1; j < (i + 1) / 2; j++) { bottles[i - 1][j].depth = bottles[i - 1][j - 1].depth + k; bottles[i - 1][i - j - 1].depth = bottles[i - 1][i - j].depth + k; k -=2; } } for(int i = 0; i < h; i++) { for(int j = 0; j < i + 1; j++) { if(bottles[i][j].depth <= n && bottles[i][j].value < maximum) { maximum = bottles[i][j].value; } } } cout << maximum << endl; return 0; } |
English