기타/백준일지
[백준] 재귀 - 2630번 색종이 만들기
민지기il
2025. 6. 20. 23:21
#include <bits/stdc++.h>
#define fastio cin.tie(0)->sync_with_stdio(0)
using namespace std;
int arr[129][129];
int white=0;
int blue=0;
void fc(int x, int y, int k){
bool cut=false;
int first_c=arr[x][y];
for(int i=x; i<x+k; i++){
for(int j=y; j<y+k;j++){
if(arr[i][j]!=first_c){
cut=true;
break;
}
}
}
if(cut){
fc(x,y,k/2);
fc(x,y+k/2,k/2);
fc(x+k/2, y, k/2);
fc(x+k/2, y+k/2, k/2);
}else{
if(first_c==1)
blue++;
else
white++;
}
}
int main(){
fastio;
int n; cin>>n;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
cin>>arr[i][j];
}
}
fc(0,0,n);
cout<<white<<'\n';
cout<<blue<<'\n';
return 0;
}