Cod sursa(job #1580333)

Utilizator vladrochianVlad Rochian vladrochian Data 25 ianuarie 2016 19:44:55
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

const int N_MAX = 300;

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

int N, M, X;
int a[N_MAX + 5][N_MAX + 5];
int ans;

inline int Sum(int d, int u, int c) { return a[d][c] - a[u][c]; }

int main() {
   fin >> N >> M >> X;
   for (int i = 1; i <= N; ++i)
      for (int j = 1; j <= M; ++j) {
         fin >> a[i][j];
         a[i][j] += a[i - 1][j];
      }

   for (int d = 1; d <= N; ++d)
      for (int u = 0; u < d; ++u)
         for (int l = 0, r = 1, s = Sum(d, u, 1); r <= M; s += Sum(d, u, ++r)) {
            while (s > X)
               s -= Sum(d, u, ++l);
            ans = max(ans, (d - u) * (r - l));
         }

   fout << ans << "\n";
   return 0;
}