Cod sursa(job #639061)

Utilizator valentina506Moraru Valentina valentina506 Data 22 noiembrie 2011 12:08:49
Problema Ferma2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>
using namespace std;
int n,k,i,j,a[1001][1001],lin[1001][1001],col[1001][1001],diag[1001][1001],s,m;
int xi,yi,xf,yf,s1,s2,s3;
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];
			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];
		}
		
		xi=yi=1;
		xf=yf=n;
		
		m=n-k;
		s=0;
		for(i=1;i<=k;++i)
		{
			s1=col[xf][yi]-col[xi-1][yi];
			s2=lin[xf][yf]-lin[xf][yi-1];
			s3=diag[xf][yf]-diag[xi-1][yi-1];
		//	g<<s1<<" "<<s2<<" "<<s3<<"\n";
			if(s1>s2&&s1>s3)
			{
				s+=s1;
				xi++;
				yi++;
			//	g<<"s1 :"<<s1<<"\n";
			}
			else
				if(s2>s3)
				{
					s+=s2;
					xf--;
					yf--;
				//	g<<"s2 "<<s2<<"\n";
				}
				else
				{
					s+=s3;
					xi++;
					yf--;
				//	g<<"s3 "<<s3<<"\n";
				}
		}
		g<<s;
		
		
/*	g<<"\n\n";
	
	for(i=1;i<=n;++i)
	{
		for(j=1;j<=i;++j)
			g<<col[i][j]<<" ";
		g<<"\n";
	}
	
		*/
		return 0;
}