Untitled
unknown
plain_text
2 years ago
1.2 kB
14
Indexable
#include <iostream>
using namespace std;
int check(int start1,int start2, int end1, int end2, int arr[128][128], int sumb){
int x = sumb;
if(start1 < end1-1){
for (int i = start1;i< end1;i++){
for (int j = start2;j< end2;j++){
if(arr[i][j]!=x){
return check(start1,start2,start1+(end1-start1)/2,start2+(end2-start2)/2,arr,sumb)+check(start1+(end1-start1)/2,start2,end1,start2+(end2-start2)/2,arr,sumb)+check(start1,start2+(end2-start2)/2,start1+(end1-start1)/2,end2,arr,sumb)+check(start1+(end1-start1)/2,start2+(end2-start2)/2,end1,end2,arr,sumb);
}
}
}
}
if( start1 >= end1-1 && arr[0][0] != x) return 0;
return 1;
}
int main()
{
freopen("input.txt","r",stdin);
int T;
cin >> T;
for(int TestCase=0; TestCase<T; TestCase++)
{
int size;
cin >> size;
int arr[128][128];
for(int i = 0;i<size;i++){
for(int j = 0;j<size;j++){
cin >> arr[i][j];
}
}
int start1 = 0;
int start2 = 0;
int end1 = size;
int end2 = size;
int sumw = 0;
int sumb = 1;
cout <<"#" << TestCase +1 << " " << check(start1,start2,end1,end2,arr,sumw) << " " << check(start1,start2,end1,end2,arr,sumb) << endl;
}
return 0;
}Editor is loading...