Pagini recente » Cod sursa (job #2601578) | Cod sursa (job #2650273) | Cod sursa (job #1975825) | Cod sursa (job #1480635) | Cod sursa (job #2508686)
#include <fstream>
using namespace std;
ifstream f("ferma2.in");
ofstream g("ferma2.out");
int n,k,sum,rasp,l[1001][1001],c[1001][1001],dia[1001][1001],d[1001][1001];
int main()
{
f >> n >> k;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= i; ++j)
{
int x;
f >> x;
sum += x;
l[i][j] = l[i][j - 1] + x;
c[i][j] = c[i - 1][j] + x;
dia[i][j] = dia[i - 1][j - 1] + x;
}
int m = n - k;
for(int i = 1; i <= m; ++i)
d[1][1] += l[i][i];
rasp = d[1][1];
for(int i = 2; i + m - 1 <= n; ++i)
{
d[i][1] = d[i - 1][1] - dia[i + m - 2][m] + l[i + m - 1][m];
rasp = min(rasp,d[i][1]);
//g << i << " " << 1 << ":" << d[i][1] << '\n';
for(int j = 2; j <= i; ++j)
{
d[i][j] = d[i][j - 1] - c[i + m - 1][j - 1] + c[i - 1][j - 1] + dia[i + m - 1][j + m - 1] - dia[i - 1][j - 1];
//g << i << " " << j << ":" << d[i][j] << '\n';
rasp = min(rasp,d[i][j]);
}
}
g << sum - rasp << '\n';
return 0;
}