Submission #1174813

#TimeUsernameProblemLanguageResultExecution timeMemory
1174813MuhammetStrange Device (APIO19_strange_device)C++17
65 / 100
300 ms16968 KiB
#include "bits/stdc++.h"

using namespace std;
 
#define ll long long
#define SZ(s) (int)s.size()
#define ff first
#define ss second

ll INF = LLONG_MAX;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);

    ll n, a, b;
    cin >> n >> a >> b;
    ll s = 0;
    vector <pair <ll, ll>> v;
    ll k = (a / __gcd(a, b+1LL));
    k *= min(b, INF/k);
    for(int i = 1; i <= n; i++) {
        ll l, r;
        cin >> l >> r;
        l %= k, r %= k;
        if(l <= r) {
            v.push_back({l, r});
        }
        else {
            v.push_back({l, k-1});
            v.push_back({0, r});
        }
    }

    sort(v.begin(), v.end());

    ll mn = v[0].ff, mx = v[0].ss, ans = 0;
    for(auto i : v){
        if(i.ff > mx){
            ans += (mx-mn+1);
            mn = 1e18;
            mx = -1e18;
        }
        mn = min(i.ff,mn);
        mx = max(mx,i.ss);
    }
    if(mn <= mx){
        ans += (mx-mn+1);
    }
    
    cout << ans;

    return 0;
}
#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...