Cod sursa(job #2414110)

Utilizator lucametehauDart Monkey lucametehau Data 24 aprilie 2019 09:18:38
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream cin ("teren.in");
ofstream cout ("teren.out");

int n, m, x;
int sol;

bool v[305][305];
int s[305][305];

int main() {
  cin >> n >> m >> x;
  for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= m; j++) {
      cin >> v[i][j];
      s[i][j] = s[i - 1][j] + v[i][j];
    }
  }
  for(int i = 1; i <= n; i++) {
    for(int j = i; j <= n; j++) {
      int l = 1, r = 1, sm = s[j][1] - s[i - 1][1];
      while(l <= r && r <= m) {
        while(sm <= x && r <= m)
          r++, sm += s[j][r] - s[i - 1][r];
        sol = max(sol, (j - i + 1) * (r - l));
        while(sm > x && l <= r)
          sm -= s[j][l] - s[i - 1][l], l++;
      }
    }
  }
  cout << sol;
  return 0;
}