Pagini recente » Cod sursa (job #2626972) | Cod sursa (job #295093) | Cod sursa (job #39056) | Cod sursa (job #3281963) | Cod sursa (job #776869)
Cod sursa(job #776869)
#include <cstdio>
#include <iostream>
using namespace std;
int tr[1004][1005];
int dp[1004][1005];
int main()
{
int n,k,S=0,Smin=1<<30;
freopen("ferma2.in","r", stdin);
freopen("ferma2.out","w", stdout);
scanf("%d %d\n",&n,&k);
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
{
scanf("%d",&tr[i][j]);
dp[i][j]+=dp[i-1][j-1]+tr[i][j];
S+=tr[i][j];
}
/*for(int i=1;i<=n;i++,cout<<endl)
for(int j=1;j<=i;j++)
cout<<tr[i][j]<<" ";*/
/*for(int i=1;i<=n;i++,cout<<endl)
for(int j=1;j<=i;j++)
cout<<dp[i][j]<<" ";
cout<<S<<endl;*/
// caut triunghi de latura n-k
for(int i=n-k-1;i<=n;i++)
for(int j=1;j+n-k-1<=i;j++)
{
int Str=0,ind=1;
for(int c=j;c<j+n-k;c++)
{
Str+=dp[i][c]-dp[i-ind][j-1];
//cout<<" : "<<dp[i][c]<<" - : "<<dp[i-ind][j-1]<<" : ind :"<<ind<<endl;
ind++;
}
Smin=min(Str,Smin);
}
printf("%d",S-Smin);
return 0;
}