https://www.acmicpc.net/problem/15685
#include <iostream>
#include <cmath>
#include <vector>
#define fastio() ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr);
using namespace std;
int N;
int map[222][222];
int dy[4] = {0, -1, 0, 1};
int dx[4] = {1, 0, -1, 0};
vector<int> way[4];
void dfs(int y, int x, int d, int c, int g) {
if (c == g) return;
map[y][x] = 1;
dfs(y + dy[way[d][c]], x + dx[way[d][c]], d, c + 1, g);
}
int main() {
fastio();
cin >> N;
for (int i = 0; i < 4; i++) {
way[i].push_back(i); way[i].push_back((i + 1) % 4);
}
for (int i = 0; i < 4; i++) {
for (int j = 1; j <= 1024; j *= 2) {
for (int k = 0; k < j; k++) {
way[i].push_back((way[i][k] + 2) % 4);
}
for (int k = j; k < j + j; k++) {
way[i].push_back(way[i][k]);
}
}
}
int a, b, c, d;
for (int i = 0; i < N; i++) {
cin >> a >> b >> c >> d;
dfs(111 + b, 111 + a, c, 0, pow(2, d) + 1);
}
int cnt = 0;
for (int i = 0; i < 222; i++) {
for (int j = 0; j < 222; j++) {
if (map[i][j] and map[i][j + 1] and map[i + 1][j] and map[i + 1][j + 1]) cnt++;
}
}
cout << cnt;
}
|
cs |
'설명없음' 카테고리의 다른 글
백준 7453: 합이 0인 네 정수 [C/C++] (0) | 2022.06.13 |
---|---|
백준 2636: 치즈 [C/C++], 삼성 코딩 테스트 (0) | 2022.06.13 |
백준 15673: 감시 [C언어], 삼성 코딩 테스트 (0) | 2022.06.13 |
백준 16234: 인구 이동 [C언어], 삼성 코딩 테스트 (0) | 2022.06.13 |
백준 14891: 톱니바퀴 [C언어], 삼성 코딩 테스트 (0) | 2022.06.13 |