# 단순 구현 # 자료 구조
반복문 횟수를 실수해서 몇번 제출 하였지만 어려운 문제는 아닌것 같다.
#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 |