Submission #1174777

#TimeUsernameProblemLanguageResultExecution timeMemory
1174777MuhammetStrange Device (APIO19_strange_device)C++17
65 / 100
301 ms16956 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  ans = 0, s = 0;
    vector <pair <ll, ll>> v;
    ll x = (a / __gcd(a, b+1LL));
    ll k = (x * min(b, INF/x));
    for(int i = 1; i <= n; i++) {
        ll l, r;
        cin >> l >> r;
        s += (r - l + 1);
        if(k != 0) l %= k, r %= k;
        if(l <= r) {
            v.push_back({l, r});
        }
        else {
            v.push_back({l, k-1});
            v.push_back({0, r});
        }
    }
    if(!k) {
        cout << s;
        return 0;
    }

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

    ll L = 0;
    for(auto [l, r] : v) {
        l = max(l, L);
        r = max(L-1, r);
        if(l <= r) ans += (r - l + 1);
        L = r+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...