Pagini recente » Cod sursa (job #2697810) | Cod sursa (job #1831651) | Cod sursa (job #2385240) | Cod sursa (job #1966954) | Cod sursa (job #2509770)
#include <bits/stdc++.h>
using namespace std;
int n,k,sum,ans,linie[1009][1009],col[1009][1009],diag[1009][1009],din[1009][1009];
int main()
{
ifstream fin("ferma2.in");
ofstream fout("ferma2.out");
fin>>n>>k;
for(int i=1; i<=n; ++i)
{
for(int j=1; j<=i; ++j)
{
int x;
fin>>x;
sum+=x;
linie[i][j]=linie[i][j-1]+x;
col[i][j]=col[i-1][j]+x;
diag[i][j]=diag[i-1][j-1]+x;
}
}
int m=n-k;
for(int i=1; i<=m; ++i)
{
din[1][1]+=linie[i][i];
}
ans=din[1][1];
for(int i=2; i+m-1<=n; ++i)
{
din[i][1]=din[i-1][1]-diag[i+m-2][m]+linie[i+m-1][m];
ans=min(ans,din[i][1]);
for(int j=2; j<=i; ++j)
{
din[i][j]=din[i][j-1]-col[i+m-1][j-1]+col[i-1][j-1]+diag[i+m-1][j+m-1]-diag[i-1][j-1];
ans=min(ans,din[i][j]);
}
}
fout<<sum-ans<<"\n";
return 0;
}