Cod sursa(job #501034)

Utilizator cat_red20Vasile Ioana cat_red20 Data 14 noiembrie 2010 10:07:08
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
FILE *fin,*fout;
int a[301][301],x,nr,i,j,l,c,nr1,max,t,n,m;
int main(){
fin=fopen("teren.in","r");
fout=fopen("teren.out","w");
fscanf(fin,"%d %d %d",&n,&m,&x);
for(i=1;i<=n;i++){
	for(j=1;j<=m;j++){
		fscanf(fin,"%d",&a[i][j]);
		a[i][j]+=a[i][j-1];
	}
}
for(j=1;j<=m;j++){
	for(i=1;i<=n;i++){
		a[i][j]+=a[i-1][j];
	}
}
for(i=1;i<=n;i++){
	for(j=1;j<=m;j++){
		for(l=n-i;l>=0 && (l+1)*m>max;l--){
			for(c=m-j;c>=0 && (l+1)*(c+1)>max;c--){
				nr1=a[i+l][c+j]-a[i+l][j-1]-a[i-1][j+c]+a[i-1][j-1];
				if(nr1<=x){break;}
			}
			if((l+1)*(c+1)>max && nr1<=x){max=(l+1)*(c+1);}
		}
	}
}
fprintf(fout,"%d",max);
return 0;}