Cod sursa(job #1466183)

Utilizator enedumitruene dumitru enedumitru Data 28 iulie 2015 18:57:41
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;
ifstream f("teren.in"); ofstream g("teren.out");
int n,m,x,is,ij,j,sum,maxim,p,t,C[302][302];
char A[302][302];
int main()
{   f>>n>>m>>x;
    for(int i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {   f>>t; A[i][j]=t;
            C[i][j]=C[i-1][j]+A[i][j];
        }
    for(is=1;is<=n;is++)
        for(ij=is;ij<=n;ij++)
        {   sum=0; p=1;// caut dreptunghiuri convenabile cu linia de sus fixata pe is si cea de jos fixata pe ij
            for(j=1;j<=m;j++)
            {   sum +=(C[ij][j]-C[is-1][j]);
                while(sum>x) {sum-=(C[ij][p]-C[is-1][p]); p++;}
                if(p<=j && (ij-is+1)*(j-p+1)> maxim) maxim=(ij-is+1)*(j-p+1);
            }
        }
    g<<maxim<<'\n'; g.close(); return 0;
}