문제

https://codeforces.com/problemset/problem/1501/A

걸린 시간

-

풀이

C++

#include <bits/stdc++.h>
#define INF 1e9
#define all(c) c.begin(), c.end()
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int tc;
    cin >> tc;
    while(tc--){
        int n;
        cin >> n;
        vector<int> a(n+1, 0), b(n+1, 0);
        for(int i = 1; i <= n; i++)
            cin >> a[i] >> b[i];
        vector<int> tm(n+1, 0);
        for(int i = 1; i <= n; i++)
            cin >> tm[i];
        vector<int> travel(n+1, 0), wait(n+1, 0);
        for(int i = 1; i <= n; i++){
            travel[i] = a[i]-b[i-1];
            wait[i] = ceil((float)(b[i]-a[i])/2);
        }
        for(int i = 1; i <= n; i++){
            a[i] = b[i-1] + travel[i] + tm[i];
            b[i] = max(b[i], a[i] + wait[i]);
        }
        cout << a[n] << "\n";
    }
    return 0;
}

"기차가 도착한 뒤 정류장에 적어도 ⌈(bi-ai)/2⌉ 시간동안 머물러 있어야 한다." 는 영어 문장을 잘 해석하지 못했고, 어떤 식으로 지연된 기차 시간을 갱신해 나갈지 빠르게 생각해 내지 못했다.

'Codeforces' 카테고리의 다른 글

Codeforces Round #708 (Div. 2) A  (0) 2021.03.19
Codeforces #1501B Napoleon Cake  (0) 2021.03.16
Codeforces Round #706 (Div. 2) A  (0) 2021.03.11
Codeforces #1486B Eastern Exhibition  (0) 2021.03.10
Codeforces #1487B Cat Cycle  (0) 2021.03.09

댓글