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
#include <iostream>

using namespace std;

int main()
{
	int n; // wysokosc piramidy
	int k; // liiczba butelek do wziecia
	int rocznik = 2020; // najstarsza butelka, ktora mozna wziac

	cin >> n;
	cin >> k;

	int **butelka = new int *[n];

	for (int i = n - 1; i >= 0; i--)
	{
		butelka[i] = new int[n - i];

		for (int j = 0; j < n - i; j++)
		{
			cin >> butelka[i][j];

			if (butelka[i][j] < rocznik)
			{
				if (((n - i) * (n - i + 1) / 2) - (j * (j + 1) / 2) - ((n - i - j - 1) * (n - i - j) / 2) <= k)
					rocznik = butelka[i][j];
                else if (j < (n - i) / 2)
                    j = n - i - j;
			}
		}
	}

	cout << rocznik;

	for (int i = n - 1; i >= 0; i--)
		delete[] butelka[i];

	delete[] butelka;

	return 0;
}