Cod sursa(job #639225)

Utilizator valentina506Moraru Valentina valentina506 Data 22 noiembrie 2011 20:15:12
Problema Ferma2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<algorithm>
using namespace std;
int n,k,i,j,a[1001][1001],lin[1001][1001],col[1001][1001],diag[1001][1001],s,m,curent,smin;
int sol[1001][1001];
int main()
{
	ifstream f("ferma2.in");
	ofstream g("ferma2.out");
	f>>n>>k;
	for(i=1;i<=n;++i)
		for(j=1;j<=i;++j)
		{
			f>>a[i][j],s+=a[i][j];
			col[i][j]=col[i-1][j]+a[i][j];
			lin[i][j]=lin[i][j-1]+a[i][j];
			diag[i][j]=diag[i-1][j-1]+a[i][j];
		}
		
		m=n-k;
		
		for(i=1;i<=m;++i)
			sol[1][1]+=col[m][i];
		smin=sol[1][1];
		
		for(i=2;i<=n-m+1;++i)
		{
            sol[i][1]=sol[i-1][1]-diag[i+m-2][m]+lin[i+m-1][m];
			smin=min(smin,sol[i][1]);
			for(j=2;j<=i;++j)
			{
				sol[i][j]=sol[i][j-1]-col[i+m-1][j-1]+col[i-1][j-1]+diag[i+m-1][j+m-1]-diag[i-1][j-1];
				smin=min(smin,sol[i][j]);
			}
		}
			
		g<<s-smin;
		
		return 0;
}