Untitled
unknown
plain_text
2 years ago
916 B
13
Indexable
#include <iostream>
using namespace std;
int a[1000][1000];
int n;
int count_t, count_x;
bool check(int x, int y, int s) {
int temp = a[x][y];
for (int i = x; i < x + s; i++) {
for (int j = y; j < y + s; j++) {
if (a[i][j] != temp) {
return false;
}
}
}
return true;
}
void sub(int x, int y, int s) {
if (check(x, y, s)) {
if (a[x][y] == 0)
count_t++;
if (a[x][y] == 1)
count_x++;
return;
}
else {
sub(x, y, s / 2);
sub(x , y + s / 2, s / 2);
sub(x + s / 2, y, s / 2);
sub(x + s / 2, y + s / 2, s / 2);
}
}
int main() {
int t;
cin >> t;
for (int tc = 1; tc <= t; tc++) {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
count_t = 0;
count_x = 0;
sub(0, 0, n);
cout << "Case #" << tc << endl;
cout << count_t << " " << count_x << endl;
}
}Editor is loading...