전체 코드
더보기
#include <iostream>
#include <map>
using namespace std;
int n, l;
map<int, pair<int, int>> mp;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> l;
for (int i = 0; i < n; i++) {
int d, r, g;
cin >> d >> r >> g;
mp[d] = make_pair(r, g);
}
int distance = 0;
int time = 0;
while (1) {
if (distance == l) break;
if (mp.count(distance) > 0) {// 신호등이 있을 때
// 신호등의 주기
int cycle = mp[distance].first + mp[distance].second;
// 신호등의 빨간불 지속시간 - (현재시간 % 해당 신호등의 주기)
int temp = mp[distance].first - (time % cycle);
if (temp <= 0) { // 초록불
distance++;
time++;
}
else {// 빨간불, 대기시간 더해주기
time += temp;
}
continue;
}
distance++;
time++;
}
cout << time << "\n";
return 0;
}
'Koala - 2기 > B반' 카테고리의 다른 글
KOALA B반 - 2.18 미팅 (0) | 2021.02.18 |
---|---|
[2512번] 예산 (0) | 2021.02.09 |
KOALA B반 - 2.8 미팅 (0) | 2021.02.08 |
[2156번] 포도주 시식 (0) | 2021.02.08 |
KOALA B반 - 2.4 미팅 (0) | 2021.02.05 |