Cod sursa(job #1950337)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 2 aprilie 2017 21:52:50
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;
ifstream in("teren.in");
ofstream out("teren.out");
int n,m,p,s,arie,maxim,i,j,v[305][305],st,dr,i1,i2;
int main(){
    in>>n>>m>>p;
    for( i = 1; i <= n; i ++ ){
        for( j = 1; j <= m; j ++ ){
            in >> v[i][j];
        }
    }
    for( j = 1; j <= m; j ++ ){
        for( i = 1; i <= n; i ++ ){
            v[i][j] += v[i-1][j];
        }
    }
    for( i1 = 1; i1 <= n; i1 ++ ){
        for( i2 = i1; i2 <= n; i2 ++ ){
            s=v[i2][1]-v[i1-1][1];
            for( st = 1,dr = 1; st <= m; st ++ ){
                while( s <= p && dr <= m ){
                    dr++;
                    s+=v[i2][dr]-v[i1-1][dr];
                }
                arie=(i2-i1+1)*(dr-st);
                if(arie>maxim){
                    maxim=arie;
                }
                s-=v[i2][st]-v[i1-1][st];
            }
        }
    }

    out<<maxim;

    return 0;
}