728x90
반응형
https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
#include <iostream>
using namespace std;
int n;
int paper[129][129];
int w_cnt = 0, b_cnt = 0;
void divconquer(int x, int y, int v){
int cnt = 0;
for(int i = x; i < x + v; i++){
for(int j = y; j < y + v; j++){
if(paper[i][j]) cnt++;
}
}
if(cnt == 0) w_cnt++;
else if(cnt == v * v) b_cnt++;
else{
divconquer(x, y, v / 2);
divconquer(x, y + v / 2, v / 2);
divconquer(x + v / 2, y, v / 2);
divconquer(x + v / 2, y + v / 2, v / 2);
}
}
int main() {
cin >> n;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cin >> paper[i][j];
}
}
divconquer(0, 0, n);
cout << w_cnt << endl;
cout << b_cnt << endl;
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 1461번 도서관 (C++) (0) | 2022.02.13 |
---|---|
[BOJ] 11652번 카드 (C++) (0) | 2022.02.12 |
[BOJ] 1697번 숨바꼭질 (C++) (0) | 2022.02.12 |
[BOJ] 1931번 회의실 배정 (C++) (0) | 2022.02.11 |
[BOJ] 6068번 시간 관리하기 (C++) (0) | 2022.02.11 |