#include <stdio.h> #include <iostream> #include <algorithm> #include <vector> using namespace std; int N; int map[300][300]; int square; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, -1, 0, 1}; int main(void) { // freopen("B15685_input.txt", "r", stdin); cin >> N; for(int k = 1; k <= N; k++) { int x, y, d, gen; cin >> x >> y >> d >> gen; x += 150; y += 150; map[x][y] = k; vector<int> dir; dir.push_back(d); for(int i = 1; i <= gen; i++) { vector<int> tempDir; for(int j = dir.size()-1; j >= 0; j--) { tempDir.push_back((dir[j]+1) % 4); } for(int j = 0; j < tempDir.size(); j++) { dir.push_back(tempDir[j]); } } for(int i = 0; i < dir.size(); i++) { x += dx[dir[i]]; y += dy[dir[i]]; map[x][y] = k; } } for(int i = 0; i < 300; i++) { for(int j = 0; j < 300; j++) { int cnt = 0; for(int m = i; m < i+2; m++) { for(int n = j; n < j+2; n++) { if(map[m][n] != 0) { cnt++; } } } if(cnt == 4) { square++; } } } cout << square; return 0; } | cs |
'Baekjoon > Simulation' 카테고리의 다른 글
[백준 14891] 톱니바퀴 (Simulation) (C/C++) (★) (0) | 2020.04.09 |
---|---|
[백준 16235] 나무 재테크 (Simulation) (C/C++) (★) (0) | 2020.03.27 |
[백준 14890] 경사로 (Simulation) (C/C++) (★★) (0) | 2020.03.27 |
[백준 14503] 로봇 청소기 (Simulation) (C/C++) (★★) (0) | 2020.03.27 |
[백준 14499] 주사위 굴리기 (Simulation) (C/C++) (★★) (0) | 2020.03.26 |