Pagini recente » Cod sursa (job #2910438) | Cod sursa (job #395665) | Cod sursa (job #3158235) | Cod sursa (job #321607) | Cod sursa (job #1200810)
#include<fstream>
#define N 1010
using namespace std;
ifstream f("ferma2.in");
ofstream g("ferma2.out");
int n,k,i,j,sol,suma,d[N][N],l[N][N],c[N][N],di[N][N],a[N][N];
int main()
{
f >> n >> k;
k = n - k;
for(i = 1 ; i <= n ; ++ i)
for(j = 1 ; j <= i ; ++ j)
{
f >> a[i][j];
suma += a[i][j];
l[i][j] = l[i][j - 1] + a[i][j];
c[i][j] = c[i - 1][j] + a[i][j];
di[i][j] = di[i - 1][j - 1] + a[i][j];
}
for(i = 1 ; i <= k ; ++ i)
for(j = 1 ; j <= k ; ++ j)
d[1][1] += a[i][j];
sol = d[1][1];
for(i = 2 ; i <= n - k + 1 ; ++ i)
{
d[i][1] = d[i - 1][1] - di[i + k - 2][k] + l[i + k - 1][k];
sol = min(sol , d[i][1]);
for(j = 2 ; j <= i ; ++ j)
{
d[i][j] = d[i][j - 1] + di[i + k - 1][j + k - 1] - di[i - 1][j - 1] - c[i + k - 1][j - 1] + c[i - 1][j - 1];
sol = min (sol , d[i][j]);
}
}
g << suma - sol << '\n';
return 0;
}