Cod sursa(job #3190241)

Utilizator philippePhilippe Colta philippe Data 7 ianuarie 2024 12:55:52
Problema Teren Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;
ifstream cin("teren.in");
ofstream cout("teren.out");
int n, m, k, mat[305][305],sp[305][305], l1, l2, v[305], maxi = -1;
int main() {
    cin >> n >> m >> k;
    for(int i = 1; i<=n; i++){
        for(int j = 1; j<=m; j++){
            cin >> mat[i][j];
            sp[i][j]= mat[i][j]+sp[i-1][j];
        }
    }
    for(l1 = 1; l1<=n; l1++){
        for(l2 = l1 ; l2<=n; l2++){
            for(int i = 1; i<=m; i++){
                v[i] = sp[l2][i] - sp[l1-1][i];
            }
            int x = 1 , y = 1;
            int sum = 0;
            while(y <= m){
                sum += v[y]-v[x];
                while(sum > k)x++, sum-=v[x-1];
                int aria = (y - x + 1) * (l2 - l1 + 1);
                maxi = max(maxi, aria);
                //cout<<aria<<" "<<l1<<" "<<l2<<endl;
                y++;

            }


        }
    }

    cout<<maxi;

    return 0;
}