PS

백준 14469. 소가 길을 건너간 이유3

tose33 2021. 8. 23. 18:31

https://www.acmicpc.net/problem/14469

 

14469번: 소가 길을 건너간 이유 3

이웃 농장의 소가 길을 마구잡이로 건너는 것에 진절머리가 난 존은 극단의 결정을 내린다. 농장 둘레에 매우 큰 울타리를 짓는 것이다. 이렇게 하면 근처 농장 출신의 소가 들어올 일이 거의 없

www.acmicpc.net

 

(도착시간, 검문시간)을 pair 형태로 저장하고 도착시간 기준 오름차순 정렬한다.

도착시간+검문시간이 다음 소의 도착시간보다 작다면 현재소와 다음소 사이의 공백기간이 생기고,

도착시간+검문시간이 다음 소의 도착시간보다 크거나 같다면 다음 소는 그만큼 기다려야한다.

 

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<pair<long long, long long>> v;
    v.resize(n);
    for(int i = 0; i < n; i++)
    {
        cin >> v[i].first >> v[i].second;
    }

    // 도착시간 기준 오름차순 정렬
    sort(v.begin(), v.end());

    long long time = v[0].first + v[0].second;
    for(int i = 1; i < n; i++)
    {
        if(time < v[i].first)
        {
            time = v[i].first + v[i].second;
        }
        else
        {
            time = time + v[i].second;
        }
    }

    cout << time;
}