Cod sursa(job #1033864)

Utilizator Athena99Anghel Anca Athena99 Data 17 noiembrie 2013 15:58:58
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

ifstream fin("teren.in");
ofstream fout("teren.out");

const int nmax= 300;

int d[nmax+1][nmax+1];

int main(  ) {
    int n, m, x;
    fin>>n>>m>>x;
    for ( int i= 1; i<=n; ++i ) {
        for ( int j= 1; j<=m; ++j ) {
            fin>>d[i][j];
            d[i][j]+= d[i-1][j];
        }
    }

    int sol= 0;
    for ( int i= 1; i<=n; ++i ) {
        for ( int j= i; j<=n; ++j ) {
            int l= 1, sum= 0;
            for ( int k= 1; k<=m; ++k ) {
                for ( ; l<=m && sum+d[j][l]-d[i-1][l]<=x; ++l ) {
                    sum+= d[j][l]-d[i-1][l];
                }
                if ( (l-k)*(j-i+1)>sol ) {
                    sol= (l-k)*(j-i+1);
                }
                sum-= d[j][k]-d[i-1][k];
            }
        }
    }

    fout<<sol<<"\n";

    return 0;
}