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