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
#include <bits/stdc++.h>

using namespace std;
const int mx = 2e3+4;

int cnt[mx][mx], tab[mx][mx];

int main(){
    int n, k, res = 2020;
    scanf("%d %d",&n,&k);

    for(int i=1; i<=n; i++){
        for(int j=1; j<=i; j++){
            scanf("%d",&tab[i][j]);
        }
    }
    for(int i=1; i<=n; i++){
        for(int j=1; j<=i; j++){
            cnt[i][j] = cnt[i-1][j-1] + cnt[i-1][j] - cnt[max(i-2, 0)][j-1] + 1;
            if(cnt[i][j] <= k) res = min(res, tab[i][j]);
        }
    }
    printf("%d\n",res);
    return 0;
}