Pagini recente » Cod sursa (job #1872443) | Cod sursa (job #547936) | Cod sursa (job #3148784) | Cod sursa (job #2337279) | Cod sursa (job #1559168)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("ferma2.in");
ofstream fout("ferma2.out");
const int MAX = 1005;
const int INF = 0x3f3f3f3f;
int a[MAX][MAX];
int sl[MAX][MAX];
int sd[MAX][MAX];
int st[MAX][MAX];
int N, K;
int l;
int sdr, S;
void Read();
void Solve();
int main()
{
Read();
Solve();
fin.close();
fout.close();
return 0;
}
void Read()
{
int i, j;
fin >> N >> K;
for ( i = 1; i <= N; i++ )
for ( j = 1; j <= i; j++ )
fin >> a[i][j];
}
void Solve()
{
int i, j;
for ( i = 1; i <= N; i++ )
for ( j = 1; j <= N; j++ )
{
S += a[i][j];
sl[i][j] = sl[i][j - 1] + a[i][j];
sd[i][j] = sd[i - 1][j] + sl[i][j];
st[i][j] = st[i - 1][j - 1] + sl[i][j];
}
l = N - K; sdr = INF;
for ( i = l; i <= N; i++ )
for ( j = l; j <= i; j++ )
{
sdr = min( sdr, st[i][j] - sd[i][j - l] + sd[i - l][j - l] - st[i - l][j - l] );
}
fout << S - sdr << '\n';
}