#include <bits/stdc++.h> using namespace std; int n,k,t[2005][2005],p[2005][2005],odl1,odl2,mn; inline void fastio(int &liczba) { liczba=0; char c=0; while(c<33)c=getchar_unlocked(); do{ liczba = (liczba<<3)+ (liczba<<1) +(c-48); c=getchar_unlocked(); }while(c>33); } int main() { fastio(n); fastio(k); for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) fastio(t[i][j]); for(int i=1;i<=n;i++) { p[i][1]=i; p[i][i]=i; } int jq=2; for(int i=3;i<=n;i+=2) { for(int k=i;k<=n;k++) { p[k][jq]=p[k-1][jq]+jq; p[k][k-jq+1]=p[k-1][k-jq]+jq; } jq++; } mn=INT_MAX; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(p[i][j]<=k&&t[i][j]<mn) mn=t[i][j]; } } printf("%d",mn); }
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 | #include <bits/stdc++.h> using namespace std; int n,k,t[2005][2005],p[2005][2005],odl1,odl2,mn; inline void fastio(int &liczba) { liczba=0; char c=0; while(c<33)c=getchar_unlocked(); do{ liczba = (liczba<<3)+ (liczba<<1) +(c-48); c=getchar_unlocked(); }while(c>33); } int main() { fastio(n); fastio(k); for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) fastio(t[i][j]); for(int i=1;i<=n;i++) { p[i][1]=i; p[i][i]=i; } int jq=2; for(int i=3;i<=n;i+=2) { for(int k=i;k<=n;k++) { p[k][jq]=p[k-1][jq]+jq; p[k][k-jq+1]=p[k-1][k-jq]+jq; } jq++; } mn=INT_MAX; for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) { if(p[i][j]<=k&&t[i][j]<mn) mn=t[i][j]; } } printf("%d",mn); } |