Pagini recente » Cod sursa (job #189910) | Cod sursa (job #295169) | Cod sursa (job #1268174) | Cod sursa (job #2655371) | Cod sursa (job #638558)
Cod sursa(job #638558)
#include <cstdio>
#define NMax 1005
using namespace std;
int N, K, S, TotalS;
int Sum[NMax][NMax], MSum[NMax][NMax], DSum[NMax][NMax];
inline int Min (int a, int b)
{
if (a<b)
{
return a;
}
return b;
}
void Read ()
{
freopen ("ferma2.in", "r", stdin);
scanf ("%d %d", &N, &K);
for (int i=1; i<=N; ++i)
{
for (int j=1; j<=i; ++j)
{
scanf ("%d", &Sum[i][j]);
MSum[i][j]=Sum[i][j]+MSum[i-1][j]+MSum[i][j-1]-MSum[i-1][j-1];
DSum[i][j]=Sum[i][j]+DSum[i-1][j-1];
TotalS+=Sum[i][j];
Sum[i][j]+=(DSum[i-1][j-1]+Sum[i][j-1]);
}
}
S=TotalS;
}
void Solve ()
{
int L=N-K;
for (int i=L; i<=N; ++i)
{
for (int j=L; j<=i; ++j)
{
int CurrentS=Sum[i][j]-MSum[i][j-L]+MSum[i-L][j-L]-Sum[i-L][j-L];
S=Min (S, CurrentS);
}
}
}
void Print ()
{
freopen ("ferma2.out", "w", stdout);
printf ("%d\n", TotalS-S);
}
int main()
{
Read ();
Solve ();
Print ();
return 0;
}