Cod sursa(job #418629)

Utilizator marian77ivan marian liviu marian77 Data 16 martie 2010 10:25:36
Problema Teren Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
int nr,n,m,x,max,v[301][301],i,j,dr,st;
int main() {
	FILE *f=fopen("teren.in","r");
	FILE *g=fopen("teren.out","w");
	fscanf(f,"%d%d%d",&n,&m,&x);
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++){
			fscanf(f,"%d",&v[i][j]);
			v[i][j]=v[i][j]+v[i-1][j];
		}
	
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++) {
			st=1;
			dr=1;
			nr=0;
			for(dr=1;dr<=m&&st<=m;dr++)
				if(nr+v[j][dr]-v[i-1][dr]<=x)
					nr=nr+v[j][dr]-v[i-1][dr];
				else {
					if(max<(j-i+1)*(dr-st))
						max=(j-i+1)*(dr-st);
					st++;
					dr--;
					nr=0;
				}
	 if((j-i+1)*(dr-st)>max)
		max=(j-i+1)*(dr-st);
		}
	
	fprintf(g,"%d",max);
	return 0;
}