Cod sursa(job #2706087)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 13 februarie 2021 19:10:57
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, m, x, mat[305][305], v[305], sum[305];

int main(){
    fin >> n >> m >> x;
    for (int i = 1; i <= n; ++i){
        for (int j = 1; j <= m; ++j){
            fin >> mat[i][j];
        }
    }
    int maxim = 0;
    for (int i = 1; i <= n; ++i){
        for (int i2 = i; i2 <= n; ++i2){
            int st = 0;
            for (int j = 1; j <= m; ++j){
                if (i == i2){
                    v[j] = 0;
                }
                v[j] += mat[i2][j];
                sum[j] = sum[j - 1] + v[j];
                while (st < j && sum[j] - sum[st] > x) ++st;
                maxim = max(maxim, (i2 - i + 1) * (j - st));

            }
        }
    }
    fout << maxim;
    fin.close();
    fout.close();
    return 0;
}