Cod sursa(job #776834)
#include<cstdio>
#include <iostream>
using namespace std;
int v[1001][1001],w[1001][1001];
int main()
{
freopen("ferma2.in","r",stdin);
freopen("ferma2.out","w",stdout);
int n,k,i,j,max=0,r,nr=0,S=0;
scanf("%d%d",&n,&k);
k=n-k;
for(i=1;i<=n;i++)for(j=1;j<=i;j++)
{
scanf("%d",&v[i][j]);
max+=v[i][j];
w[i][j]=w[i-1][j]+v[i][j];
}
S=max;
for(i=k;i<=n;i++)
for(j=1;j<=i-k+1;j++)
{
nr=0;
for(r=1;r<=k;r++)nr=nr+w[i][r+j-1]-w[i-k+r-1][r+j-1];
S=min(S,nr);
}
printf("%d",max-S);
return 0;
}