Pagini recente » Cod sursa (job #2792574) | Cod sursa (job #105031) | Cod sursa (job #741133) | Cod sursa (job #1309946) | Cod sursa (job #638524)
Cod sursa(job #638524)
#include<cstdio>
#define Nmax 1024
using namespace std;
char v[Nmax][Nmax];
unsigned int sc[Nmax][Nmax],sd[Nmax][Nmax],N,K,L,F,m,S;
int main(){
freopen("ferma2.in","r",stdin);
freopen("ferma2.out","w",stdout);
scanf("%d%d",&N,&K);
for(unsigned int i=1;i<=N;++i)
for(unsigned int j=1;j<=i;++j){
scanf("%d",&m);
v[i][j]=m;
S+=v[i][j];
sc[i][j]=sc[i-1][j]+v[i][j];
sd[i][j]=sd[i-1][j-1]+v[i][j];
}
L=N-K;
F=N-L+1;
m=0x3f3f3f3f;
for(unsigned int l=1;l<=F;++l){
unsigned int s=0;
for(unsigned int p=1;p<1+L;++p)
s+=sc[l+L-1][p]-sc[l+p-2][p];
if(s<m)
m=s;
for(unsigned int j=2;j<=F&&j<=l;++j){
s-=(sc[l+L-1][j-1]-sc[l-1][j-1]);
s+=sd[l+L-1][j+L-1]-sd[l-1][j-1];
if(s<m)
m=s;
}
}
printf("%d",S-m);
return 0;
}