Cod sursa(job #1518015)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 5 noiembrie 2015 10:32:51
Problema Teren Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <fstream>

using namespace std;

int n,m,a[301][301],i,j,ii,jj,nr,p,maxim,s[301][301];

//long long s,ok;

ifstream fin ("teren.in");

ofstream fout ("teren.out");

int main (){

    fin>>n>>m>>p;
    for (i=1;i<=n;i++){
        for (j=1;j<=m;j++){
            fin>>a[i][j];
            if (a[i][j] == 1)
                nr++;
            s[i][j] = s[i][j-1]+s[i-1][j]-s[i-1][j-1]+a[i][j];
            //fout<<s[i][j]<<" ";
        }
        //fout<<"\n";
    }
    maxim = 0;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            for (ii=i;ii<=n;ii++)
                for (jj=j;jj<=m;jj++){
                    nr = s[ii][jj]-s[i-1][jj]-s[ii][j-1]+s[i-1][j-1];
                    if (nr <= p && (ii-i+1)*(jj-j+1) > maxim)
                        maxim = (ii-i+1)*(jj-j+1);
                }


    fout<<maxim;


/*    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            for (ii=i;ii<=n;ii++){
                for (jj=j;jj<=m;jj++){
                    s = 0;
                    for (x=i;x<=ii;x++)
                        for (y=j;y<=jj;y++)
                            s+=a[x][y];
                    if ((ii-i+1)*(jj-j+1) > maxim && s<=p){
                        maxim = (ii-i+1)*(jj-j+1);
                       //ok = (ii-i+1)*(jj-j+1);
                    }
                }
            }

    fout<<maxim;
*/
    return 0;
}