#include <iostream> #include <cmath> using namespace std; short zaokragl(double wartosc) { return floor(wartosc + 0.5); } short obliczOddalenieOdBrzegu(short kolumna, short ileKolumn) { short polowa = zaokragl(((double)ileKolumn) / 2); return kolumna <= polowa ? kolumna : ileKolumn - kolumna + 1; } short ileElementowMaPiramida(short iloscWierszy) { return iloscWierszy * (iloscWierszy + 1) >> 1; } int main() { int n; int k; short current; short bottles[2000][2000]; cin >> n >> k; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j <= i ; j++) { cin >> current; bottles[i][j] = current; } } short minX = 0; short minY = 0; short minYear = 2019; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j <= i ; j++) { short oddalenieOdBrzegu = obliczOddalenieOdBrzegu(j + 1, i + 1); short minSteps = oddalenieOdBrzegu * i - ileElementowMaPiramida(oddalenieOdBrzegu - 1) + 1; if (minSteps <= k && bottles[i][j] < minYear) { minYear = bottles[i][j]; minX = i; minY = j; } } } cout << bottles[minX][minY]; 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 55 56 57 58 59 60 61 62 63 64 65 66 | #include <iostream> #include <cmath> using namespace std; short zaokragl(double wartosc) { return floor(wartosc + 0.5); } short obliczOddalenieOdBrzegu(short kolumna, short ileKolumn) { short polowa = zaokragl(((double)ileKolumn) / 2); return kolumna <= polowa ? kolumna : ileKolumn - kolumna + 1; } short ileElementowMaPiramida(short iloscWierszy) { return iloscWierszy * (iloscWierszy + 1) >> 1; } int main() { int n; int k; short current; short bottles[2000][2000]; cin >> n >> k; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j <= i ; j++) { cin >> current; bottles[i][j] = current; } } short minX = 0; short minY = 0; short minYear = 2019; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j <= i ; j++) { short oddalenieOdBrzegu = obliczOddalenieOdBrzegu(j + 1, i + 1); short minSteps = oddalenieOdBrzegu * i - ileElementowMaPiramida(oddalenieOdBrzegu - 1) + 1; if (minSteps <= k && bottles[i][j] < minYear) { minYear = bottles[i][j]; minX = i; minY = j; } } } cout << bottles[minX][minY]; return 0; } |