Cod sursa(job #896082)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 27 februarie 2013 13:47:08
Problema Teren Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
using namespace std;
FILE*f=fopen("teren.in", "r");
FILE*g=fopen("teren.out", "w");
int n, m, x, v[310][310], s[310][310], i, j, p, ii, jj, a, maxim;
int main(){
    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]);
    fclose(f);
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            s[i][j]=v[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            for(ii=1; ii<=i; ii++)
                for(jj=1; jj<=j; jj++)
                {
                    p=s[i][j]+s[ii-1][jj-1]-s[i][jj-1]-s[ii-1][j];
                    if(p<=x)
                    {
                        a=(i-ii+1)*(j-jj+1);
                        if(a>maxim)
                            maxim=a;
                    }
                }
    fprintf(g, "%d\n", maxim);
    fclose(g);
    return 0;
}