// 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