Cod sursa(job #2238369)

Utilizator YetoAdrian Tonica Yeto Data 5 septembrie 2018 13:22:47
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
using namespace std;
int n, m, x, i, j, st, dr,nr, Max;
int a[301][301];

int main () {
    ifstream fin ("teren.in");
    ofstream fout ("teren.out");
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++) {
            fin>>nr;
            a[i][j]=a[i-1][j]+nr;
    }

    for (i=1;i<=n;i++) {

        for (j=i;j<=n;j++) {
                int s=0;dr=1;
                s=a[j][dr]-a[i-1][dr];
                for(st=1;st<=m;st++){

                  while(st<=dr&&s<=x&&dr<=m){
                       if((j-i+1)*(dr-st+1)>Max)
                           Max=(j-i+1)*(dr-st+1);
                    dr++;
                    s=s+a[j][dr]-a[i-1][dr];
                  }
                  if(st>=dr){
                       dr=st+1;
                       s=s+a[j][dr]-a[i-1][dr];
                  }

                  s=s-(a[j][st]-a[i-1][st]);
                }

        }

    }


    fout<<Max;

    return 0;
}