Cod sursa(job #609234)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 20 august 2011 12:43:54
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<iostream>
#include<fstream>
int a[301][301];
using namespace std;
int main(void)
{
	int i,j,m,n,x,max=-1;
	fstream f,g;
	f.open("teren.in",ios::in);
	g.open("teren.out",ios::out);
	f>>n>>m>>x;
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			f>>a[i][j];
	for (i=2;i<=m;i++)
	{
		a[1][i]=a[1][i]+a[1][i-1];
		
	}
	for (i=2;i<=n;i++)
	{
		a[i][1]=a[i][1]+a[i-1][i];
	}
	for (i=2;i<=n;i++)
		for (j=2;j<=m;j++)
			a[i][j]=a[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
		
	int k=0,aux,s,k1,st,dr,nr1,c1,c2;
	
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(c1=1;c1<=m;c1++)
						for(c2=c1;c2<=m;c2++)
							{
								nr1=a[j][c2]-a[j][c1-1]-a[i][c2-1]+a[i][c1-1];
								if (nr1<=x && (j-i+1)*(c2-c1+1)>max)
									
									{
										max=(j-i+1)*(c2-c1+1);
									//	cout<<i<<" "<<j<<" "<<c1<<" "<<c2<<"\n";
								}
						}
		g<<max;
}