// UVa 836 - Largest Submatrix
#include <iostream>
#include <string>
using namespace std;
int main() {
int t;
string line;
cin >> t;
getline(cin, line);
for (; t; t--) {
getline(cin, line);
string mat[26];
getline(cin, mat[0]);
int n = mat[0].length();
for (int i = 2; i <= n; i++)
getline(cin, mat[i - 1]);
int sol = 0, T[26][26];
for (int j = 0; j <= n; j++)
T[0][j] = 0;
for (int i = 1; i <= n; i++) {
T[i][0] = 0;
for (int j = 1; j <= n; j++) {
T[i][j] = (mat[i - 1][j - 1] == '1' ? 1 : 0);
T[i][j] += T[i][j - 1] + T[i - 1][j] - T[i - 1][j - 1];
for (int a = 1; a <= i; a++)
for (int b = 1; b <= j; b++) {
int s = T[i][j] - T[a - 1][j] - T[i][b - 1] + T[a - 1][b - 1];
if (s == (i - a + 1) * (j - b + 1) && sol < s)
sol = s;
}
}
}
cout << sol << endl;
if (t > 1)
cout << endl;
}
return 0;
}
Friday, June 12, 2015
UVa 836 - Largest Submatrix
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment