Cod sursa(job #1527491)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 18 noiembrie 2015 10:25:06
Problema Teren Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>

using namespace std;
int s[302][302];
int main()
{
    FILE *fin=fopen ("teren.in","r");
    FILE *fout=fopen ("teren.out","w");
    int n,m,x,i,j,maxi,y,ii,jj,ar;
    fscanf (fin,"%d%d%d",&n,&m,&x);
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++){
             fscanf (fin,"%d",&y);
             s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+y;
        }
    // avem matricea cu sume partiale
    maxi=0;
    for (i=1;i<=n;i++)
        for (ii=i;ii<=n;ii++){
        // am fixat 2 linii
        j=jj=1;
        while (j<=n){
            y=s[ii][jj]-s[ii][j-1]-s[i-1][jj]+s[i-1][j-1];
            if (y<=x){
                ar=(ii-i+1)*(jj-j+1);
                if (ar>maxi) maxi=ar;
                jj++;
                if (jj>n){
                    jj--;
                    j++;
                }
            }
            else j++;
        }
    }
    fprintf (fout,"%d",maxi);
    return 0;
}