티스토리 뷰

알고리즘/BOJ

[BOJ 3190] 뱀

히더 2019. 1. 21. 12:49

백준 :: BOJ :: 3190 :: 뱀


출처 : https://www.acmicpc.net/problem/3190


#include <bits/stdc++.h>

using namespace std;


int N, K, L, ti, tj, dd, ans, m[101][101];

int di[] = {0,1,0,-1}, dj[] = {1,0,-1,0};

deque <pair<int,int>> dq, r;


inline bool chk(int i, int j) { return (i>0&&j>0&&i<=N&&j<=N) ? true : false; }


int main() {

std::ios::sync_with_stdio(false); cin.tie(0);

cin >> N >> K; dq.push_back(make_pair(1, 1)); m[1][1] = -1; dd = 0;

while (K--) {

cin >> ti >> tj; m[ti][tj] = 1;

}

cin >> L;

while (L--) {

char c; cin >> ti >> c;

if (c == 'L') tj = -1;

else tj = 1;

r.push_back(make_pair(ti, tj));

}


while (1) {

ans++;ti = dq.front().first+di[dd]; tj = dq.front().second+dj[dd];

if (chk(ti, tj)) {

if (m[ti][tj]>=0) {

if (m[ti][tj] < 1) { 

m[dq.back().first][dq.back().second] = 0; dq.pop_back();

}

dq.push_front(make_pair(ti, tj)); m[ti][tj] = -1;

}

else break;

}

else break;

if (!r.empty() && r.front().first == ans) {

dd += r.front().second; r.pop_front();

if (dd == -1) dd = 3;

else if (dd == 4) dd = 0;

}

}


cout << ans;

return 0;

}


'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ 17143] 낚시왕  (0) 2019.05.14
[BOJ 17144] 미세먼지 안녕!  (2) 2019.05.14
[BOJ 16235] 나무 재테크  (0) 2019.01.10
[BOJ 16234] 인구 이동  (0) 2019.01.09
[BOJ 16236] 아기 상어  (0) 2019.01.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함