[백준 14601] 샤워실 바닥 깔기 (Large)PS/백준 알고리즘[BOJ]2023. 10. 27. 10:58
Table of Contents
728x90
반응형
1. 문제
https://www.acmicpc.net/problem/14601
#include<iostream>
using namespace std;
int num;
int map[128][128];
bool check(int x1, int y1, int x2, int y2) {
for (int i = x1; i < x2; i++) {
for (int j = y1; j < y2; j++) {
if (map[i - 1][j - 1] != 0) return false;
}
}
return true;
}
void tromino(int s, int x, int y, int& t) {
if (s == 0) return;
int size = (1 << s - 1);
num++;
if (check(x, y, x + size, y + size) == true) map[x + size - 2][y + size - 2] = num;
if (check(x + size, y, x + 2 * size, y + size) == true) map[x + size - 1][y + size - 2] = num;
if (check(x, y + size, x + size, y + 2 * size) == true) map[x + size - 2][y + size - 1] = num;
if (check(x + size, y + size, x + 2 * size, y + 2 * size) == true) map[x + size - 1][y + size - 1] = num;
tromino(s - 1, x, y, num);
tromino(s - 1, x + size, y, num);
tromino(s - 1, x, y + size, num);
tromino(s - 1, x + size, y + size, num);
}
int main(void) {
int k, m, n;
cin >> k >> m >> n;
map[m - 1][n - 1] = -1;
int siz = (1 << k);
tromino(k, 1, 1, num);
for (int i = siz - 1; i >= 0; i--, cout << "\n") {
for (int j = 0; j < siz; j++, cout << " ") cout << map[j][i];
}
return 0;
}
728x90
반응형
'PS > 백준 알고리즘[BOJ]' 카테고리의 다른 글
[백준 2447번] 별 찍기 -10 (C++) (1) | 2023.10.29 |
---|---|
[백준 6549번] 히스토그램에서 가장 큰 직사각형 (1) | 2023.10.28 |
[백준 1629번] 곱셈 (C++) (0) | 2023.10.26 |
[백준 14600번] 샤워실 바닥 갈기 (Small) (C++) (0) | 2023.10.26 |
[백준 9920번] image (C++) (0) | 2023.10.21 |
@BE_개발자 :: 경이로운 개발일기
경이로운 BE 개발자가 되기 위한 프로그래밍 공부 기록장
도움이 되었다면 "❤️" 또는 "👍🏻" 해주세요! 문의는 아래 이메일로 보내주세요.