Pagini recente » Cod sursa (job #2068989) | Cod sursa (job #2764442) | Cod sursa (job #1785518) | Cod sursa (job #2175329) | Cod sursa (job #2562023)
#include <fstream>
using namespace std;
ifstream fin("ferma2.in");
ofstream fout("ferma2.out");
int a[1002][1002];
int L[1002][1002];
int C[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(smin, s);
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);
}
}
s = total - smin;
fout << s << "\n";
fout.close();
return 0;
}