// UVa 10074 - Take the Land #include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; while (n || m) { int bit, S[101][101]; int sol = 0; // base cases for (int i = 0; i <= n; i++) S[i][0] = 0; for (int j = 0; j <= n; j++) S[0][j] = 0; // dp for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { cin >> bit; S[i][j] = (i > 0 ? S[i - 1][j] : 0) + (j > 0 ? S[i][j - 1] : 0) - (i > 0 && j > 0 ? S[i - 1][j - 1] : 0) + bit; for (int a = 0; a < i; a++) for (int b = 0; b < j; b++) { if (S[i][j] - S[a][j] - S[i][b] + S[a][b] == 0 && (i - a) * (j - b) > sol) sol = (i - a) * (j - b); } } cout << sol << endl; cin >> n >> m; } return 0; }
Sunday, June 14, 2015
UVa 10074 - Take the Land
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment