Cod sursa(job #109719)

Utilizator FlorianFlorian Marcu Florian Data 25 noiembrie 2007 12:32:45
Problema Teren Scor 50
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasa a 9-a Marime 0.71 kb
#include<stdio.h>
FILE*f=fopen("teren.in","r");
FILE*g=fopen("teren.out","w");
int a[303][303],max,n,m,x;
void read()
	{
	int p;
	fscanf(f,"%d %d %d",&n,&m,&x);
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
			{
			fscanf(f,"%d",&p);
			a[i][j]=p+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
			}
	}
void solve()
	{
	max=-300*300;
	int i,j,p,k,S,b1,b2,b3,A,nr;
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j)
			for(p=n;p>=i;--p)
				for(k=m;k>=j;--k)
				{
				S=a[p][k];
				b1=a[p][j-1];
				b2=a[i-1][k];
				b3=a[i-1][j-1];
				nr=S-b1-b2+b3;
				if(nr<=x)
					{
					A=(p-i+1)*(k-j+1);
					if(A>max) max=A;
					}
				}
	fprintf(g,"%d\n",max);
	}
int main()
	{
	read();
	solve();
	return 0;
	}