제출 #562760

#제출 시각아이디문제언어결과실행 시간메모리
562760tatyam이상한 기계 (APIO19_strange_device)C++17
100 / 100
820 ms113428 KiB
#include <iostream>
#include <vector>
#include <numeric>
#include <map>
using namespace std;
using u64 = uint64_t;
const u64 MAX = 1e18;


int main(){
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    int n;
    u64 A, B;
    cin >> n >> A >> B;
    A /= gcd(A, B + 1);
    const u64 P = MAX / A < B ? MAX + 1 : A * B;
    vector<pair<u64, u64>> range(n);
    map<u64, int> imos;
    for(auto& [L, R] : range){
        cin >> L >> R;
        R++;
        if(R - L >= P){
            cout << P << endl;
            return 0;
        }
        L %= P;
        R %= P;
        imos[L]++;
        imos[R]--;
        if(L > R){
            imos[0]++;
            imos[P]--;
        }
    }
    u64 ans = 0, prev = 0, cnt = 0;
    for(auto [key, val] : imos){
        if(cnt) ans += key - prev;
        cnt += val;
        prev = key;
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...