#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); }
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); } |