# 단순 구현 # 자료 구조
반복문 횟수를 실수해서 몇번 제출 하였지만 어려운 문제는 아닌것 같다.
#include <iostream> #include <algorithm> #include <queue> #pragma warning(disable:4996) using namespace std; typedef pair<int, int> pi; struct st{ int pos; int fi; }; deque<st> dq; int park,bus,cur=1; pi p[1005]; int main() { scanf("%d%d",&park,&bus); for(int i=1;i<=bus;i++) scanf("%d%d",&p[i].first,&p[i].second); for(int i=1;i<1005;i++) { while(!dq.empty()&&dq.front().fi<=i) dq.pop_front(); // 정차시간이 지난 버스를 큐에서 빼준다. while((dq.empty()||dq.back().pos<park)&&p[cur].first<=i) { st s; if(dq.empty()) s={1,i+p[cur].second}; else s={dq.back().pos+1,i+p[cur].second}; if(cur==bus) { printf("%d",s.pos); return 0; } dq.push_back(s); cur++; } // 조건에 충족하는 버스를 큐에 넣어준다. } return 0; }
'IT > BOJ' 카테고리의 다른 글
백준(BOJ) 1495 기타리스트 ** (0) | 2018.06.15 |
---|---|
백준(BOJ) 15805 트리 나라 관광 가이드 ** (0) | 2018.06.15 |
백준(BOJ) 1572 중앙값 *** (0) | 2018.06.13 |
백준(BOJ) 14921 용액 합성하기 ** (0) | 2018.06.13 |
백준(BOJ) 14921 용액 합성하기 ** (0) | 2018.06.13 |