Cod sursa(job #432719)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 2 aprilie 2010 17:33:26
Problema Teren Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
FILE*f=fopen("teren.in","r");
FILE*g=fopen("teren.out","w");
int a[301][301],s[300],max,max2,p,u,lmax,aux,nr,ii,n,x,j,i,k,m,lmax2;
int main () {
	fscanf(f,"%d %d %d",&n,&m,&k);
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			fscanf(f,"%d",&x);
			a[i][j]=a[i-1][j]+x;
		}
	}
	for(i=1;i<=n;i++){
		for(j=i;j<=n;j++){
			for(ii=i;ii<=m;ii++)
				s[ii]=a[j][ii]-a[i-1][ii];
			ii=0;
			nr=0;
			lmax=0;
			lmax2=0;
			for(p=1,u=1;u<=m;u++){
				nr+=s[u];
				while(p<=u&&nr>k){
					nr-=s[p];
					p++;
				}
				if(p<=u)
					lmax2=u-p+1;
				if(lmax2>lmax)
					lmax=lmax2;
			}
			if(lmax*(j-i+1)>max)
				max=lmax*(j-i+1);
		}
	}
	fprintf(g,"%d",max);
	
	fclose(f);
	fclose(g);
	return 0;
}