Cod sursa(job #2354174)

Utilizator maria15Maria Dinca maria15 Data 24 februarie 2019 22:54:41
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

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

long long n, m, x, s, sol, a[302][302], v[302][302], maxim = 0, st, dr, i, j, k;

long long suma(int i1, int j1, int i2, int j2){
    return a[i2][j2] - a[i2][j1-1] - a[i1-1][j2] + a[i1-1][j1-1];
}

int main(){
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            fin>>v[i][j];
    for(i=1;i<=n;i++){
        s = 0;
        for(j=1;j<=m;j++){
            s += v[i][j];
            a[i][j] = a[i-1][j] + s;
        }
    }
    for(i=1;i<=n;i++)
        for(j=i;j<=n;j++){
            st = 1;
            for(dr=1;dr<=m && st<= dr;dr++)
                if(suma(i, st, j, dr) <= x)
                    maxim = max(maxim, (j-i+1)*(dr-st+1));
                else
                    sol -= suma(i, st, j, st), st++;
        }
    fout<<maxim;
    return 0;
}