Pagini recente » Cod sursa (job #4650) | Cod sursa (job #2425253) | Cod sursa (job #2185852) | Cod sursa (job #241332) | Cod sursa (job #2562016)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ferma2.in");
ofstream fout("ferma2.out");
int a[1002][1002];
int C[1002][1002];
int L[1002][1002];
int D[1002][1002];
int n , k , m;
int main()
{
int i, j;
int s, smin, s1, total = 0;
fin >> n >> k;
m = n - k;
for(i = 1; i <= n; i++)
for(j = 1; j <= i; j++)
{
fin >> a[i][j];
total += a[i][j];
L[i][j] = L[i][j - 1] + a[i][j];
C[i][j] = C[i - 1][j] + a[i][j];
D[i][j] = D[i - 1][j - 1] + a[i][j];
}
s = 0;
for(i = 1; i <= m; i++)
s += L[i][i];
s1 = smin = s;
for(i = m + 1; i <= n; i++)
{
s = s1 = s1 + L[i][m] - D[i - 1][m];
smin = min (s, smin);
for(j = m + 1; j <= i; j++)
{
s = s - (C[i][j - m] - C[i - m][j - m]) + (D[i][j] - D[i - m][j - m]);
smin = min(smin, s);
}
}
fout <<total - smin << "\n";
fin.close();
fout.close();
return 0;
}