// UVa 10502 - Counting Rectangles #include <iostream> #include <string> #include <string.h> using namespace std; int main() { int n, m; cin >> n; ; while (n) { cin >> m; int T[101][101]; memset(T, 0, sizeof(T)); for (int i = 1; i <= n; i++) { string l; cin >> l; for (int j = 1; j <= m; j++) T[i][j] = T[i - 1][j] + T[i][j - 1] - T[i - 1][j - 1] + (l[j - 1] - '0'); } unsigned long long int sol = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) for (int a = i - 1; a >= 0; a--) { int b; for (b = j - 1; b >= 0; b--) { if (T[i][j] - T[i][b] - T[a][j] + T[a][b] == (i - a) * (j - b)) sol++; else break; } } } cout << sol << endl; cin >> n; } return 0; }
Wednesday, August 12, 2015
UVa 10502 - Counting Rectangles
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment