Cod sursa(job #1164474)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 2 aprilie 2014 09:06:24
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
int n,m,k,i,j,v[305][305],x[305][305],s,ci,cj,nmax;
FILE *f,*g;
int main(){
    f=fopen("teren.in","r");
    g=fopen("teren.out","w");
    fscanf(f,"%d%d%d",&n,&m,&k);
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            fscanf(f,"%d",&v[i][j]);
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++){
            x[i][j]=x[i-1][j]+v[i][j];
        }
    }
    for(i=1;i<=n;i++){
        for(j=i;j<=n;j++){
            s=0;
            ci=1;
            for(cj=1;cj<=m;cj++){
                s+=x[j][cj]-x[i-1][cj];
                while(s>k&&cj>=ci){
                    s+=x[i-1][ci]-x[j][ci];
                    ci++;
                }
                if((j-i+1)*(cj-ci+1)>nmax)
                    nmax=(j-i+1)*(cj-ci+1);
            }
        }
    }
    fprintf(g,"%d",nmax);



    fclose(f);
    fclose(g);
    return 0;
}