Pagini recente » Cod sursa (job #1444135) | Cod sursa (job #1808550) | Cod sursa (job #243896) | Cod sursa (job #1577592) | Cod sursa (job #2087414)
#include <fstream>
using namespace std;
ifstream f("ferma2.in");
ofstream g("ferma2.out");
int n,k,i,j,s[1001][1001],sl[1001][1001],sc[1001][1001],sd[1001][1001],Min,st,v[1001][1001];
int main()
{
f>>n>>k;
for(i=1;i<=n-k;i++)
for(j=1;j<=i;j++)
{
f>>v[i][j];
st+=v[i][j];
sl[i][j]=sl[i][j-1]+v[i][j];
sc[i][j]=sc[i-1][j]+v[i][j];
sd[i][j]=sd[i-1][j-1]+v[i][j];
}
for(i=n-k+1;i<=n;i++)
{
for(j=1;j<=n-k;j++)
{
f>>v[i][j];
st+=v[i][j];
sl[i][j]=sl[i][j-1]+v[i][j];
sc[i][j]=sc[i-1][j]-v[i+k-n][j]+v[i][j];
sd[i][j]=sd[i-1][j-1]+v[i][j];
}
for(j=n-k+1;j<=i;j++)
{
f>>v[i][j];
st+=v[i][j];
sl[i][j]=sl[i][j-1]-v[i][j+k-n]+v[i][j];
sc[i][j]=sc[i-1][j]-v[i+k-n][j]+v[i][j];
sd[i][j]=sd[i-1][j-1]-v[i+k-n][j+k-n]+v[i][j];
}
}
for(i=1;i<=n-k;i++)
s[n-k][n-k]+=sl[i][i];
Min=s[n-k][n-k];
for(i=n-k+1;i<=n;i++)
{
s[i][n-k]=s[i-1][n-k]-sd[i-1][n-k]+sl[i][n-k];
Min=min(s[i][n-k],Min);
for(j=n-k+1;j<=i;j++)
{
s[i][j]=s[i][j-1]-sc[i][j+k-n]+sd[i][j];
Min=min(s[i][j],Min);
}
}
g<<st-Min;
return 0;
}