Pagini recente » Cod sursa (job #2504525) | Cod sursa (job #22658) | Cod sursa (job #1202741) | Cod sursa (job #781601) | Cod sursa (job #635532)
Cod sursa(job #635532)
#include <cstdio>
#define nmax 1010
int n, k, v[nmax][nmax], sum, tot, smin, s[nmax], y[nmax][nmax], d[nmax][nmax];
int main()
{
freopen("ferma2.in","r",stdin);
freopen("ferma2.out","w",stdout);
scanf("%d %d", &n, &k);
int i, j;
for (i=1; i<=n; i++)
for (j=1; j<=i; j++)
{
scanf("%d", &v[i][j]);
tot+=v[i][j];
}
k=n-k;
for (i=1; i<=n; i++)
for (j=1; j<=i; j++)
{
d[i][j]=d[i-1][j-1]+v[i][j];
y[i][j]=y[i-1][j]+v[i][j];
}
for (i=1; i<=k; i++)
for (j=1; j<=i; j++) s[k]+=v[i][j];
smin=s[k];
for (i=k+1; i<=n; i++)
{
s[i]=s[i-1];
for (j=1; j<=k; j++) s[i]+=v[i][j];
s[i]-=d[i-1][k];
if (s[i]<smin) smin=s[i];
sum=s[i];
for (j=k+1; j<=i; j++)
{
sum-=y[i][j-k]-y[i-k][j-k];
sum+=d[i][j]-d[i-k][j-k];
if (sum<smin) smin=sum;
}
}
printf("%d\n",tot-smin);
}