1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>

int main() {
    // wczytujemy po kolei butelki i patrzymy, ktora moze byc najstarsza
    // jak jest jakas starsza niz poprzednie, to zapamietujemy jej rok jesli jest ona dla nas osiagalna
    // osiagalnosc buletki oznacza, ze nie wyciagniemy wiecej niz k butelek - nic wiecej nas nie interesuje.
    // osiagalnosc itej butelki, to powierzchnia rombu nad nia
    int n,k; // 1 <= n <= 2000; 1 <= k <= n(n+1)/2
    int min = 1000000;
    scanf("%d %d\n", &n, &k);
    for(int i=1;i<=n;i++) {
        for(int j=0;j<i;j++) {
            int y;
            scanf("%d", &y); 
            if (((i-j)*(j+1) <= k) && (y<min)) min = y;
            //printf("%d x %d -> %d, koszt = %d, %d\n", i-j, j+1, y, (i-j)*(j+1), min);
        }
    }
    printf("%d\n", min);
    return 0;
}