Submission #1202461

#TimeUsernameProblemLanguageResultExecution timeMemory
1202461HasanV11010238Strange Device (APIO19_strange_device)C++20
100 / 100
1813 ms125736 KiB
#include<bits/stdc++.h>
#define ll long long
#define MAX 1000000000000000000
using namespace std;
int main(){
    ll n, a, b, mo, l, r;
    cin>>n>>a>>b;
    ll va = a / __gcd(a, b + 1);
    if (MAX / va < b) mo = MAX + 1;
    else mo = va * b;
    map<ll, ll> ev;
    bool f = 0;
    for (int i = 0; i < n; i++){
        cin>>l>>r;
        if (r - l + 1 >= mo) f = 1;
        l %= mo, r %= mo;
        if (l <= r){
            ev[l]++;
            ev[r]--;
        }
        else{
            ev[0]++;
            ev[r]--;
            ev[l]++;
        }
    }
    if (f){
        cout<<mo<<"\n";
        return 0;
    }
    ev[mo]++;
    ll la = -1, ans = 0, pr = 0;
    for (auto el : ev){
        if (pr == 0){
            ans += max(el.first - la - 1, 0LL);
        }
        la = el.first;
        pr += el.second;
    }
    cout<<mo - ans;
}
#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...