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>

int n, k;
int wynik=100000;

int tab[2003][2003];
int dp[2003][2003];

int main()
{
    scanf("%d%d", &n, &k);
    for(int i=1; i<=n; i++)
        for(int j=1; j<=i; j++)
            scanf("%d", &tab[i][j]);
    dp[1][1]=1;
    for(int i=2; i<=n; i++)
        for(int j=1; j<=i; j++)
            dp[i][j]=dp[i-1][j-1]+dp[i-1][j]-dp[i-2][j-1]+1;

    for(int i=1; i<=n; i++)
        for(int j=1; j<=i; j++)
            if(dp[i][j]<=k)
                wynik=std::min(wynik, tab[i][j]);
    printf("%d\n", wynik);
}