Cod sursa(job #1909576)

Utilizator MihneaGhiraMihnea MihneaGhira Data 7 martie 2017 13:09:09
Problema Teren Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int n,m,x,s,i,j,i1,i2,p,maxim;
int a[301][301];
int main(){
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            fin>>a[i][j];
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            a[i][j]+=a[i][j-1];
    for(j=1;j<=m;j++)
        for(i=1;i<=n;i++)
            a[i][j]+=a[i-1][j];
    for(i1=1;i1<=n;i1++){
        for(i2=i1;i2<=n;i2++){

            s=0;
            p=1;
            for(j=1;j<=m;j++){
                if(maxim<(i2-i1+1)*(j-p+1))
                    maxim=(i2-i1+1)*(j-p+1);
                s+=(a[i2][j]-a[i1-1][j]);
                while(s>x){
                    s-=(a[i2][p]-a[i1-1][p]);
                    p++;
                }
            }
        }
    }
    fout<<maxim;
    return 0;
}