Submission #672849

#TimeUsernameProblemLanguageResultExecution timeMemory
672849ParsaSStrange Device (APIO19_strange_device)C++17
100 / 100
943 ms100136 KiB
// In the name of God
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define mp make_pair
typedef long long ll;
const int N = 2e5 + 5;
ll A, B;
int n;

void solve() {
    cin >> n >> A >> B;
    ll C = __gcd(A, B + 1);
    ll Ap = A / C;
    ll M;
    if ((ll)1e18 / B < Ap) {
        M = 1e18 + 1;
    }
    else
        M = B * Ap;
    /*ll g = __gcd(Ap, B);
    ll M;
    if (B > 1e9 || (ll)1e18 / (B * B) < (Ap / g))
        M = 1e18 + 1;
    else {
        M = Ap / g * B * B;
    }*/
    bool ok = false;
   /* for (int i = 1; i < 100; i++) {
        if ((i + i / B) % A == 0 && i % B == 0) {
            cout << i << endl;
        }
    }*/
    map<ll, int> vec;
    for (int i = 0; i < n; i++) {
        ll l, r; cin >> l >> r;
        if (r - l >= M) {
            ok = true;
        }
        l %= M, r %= M;
        vec[l]++;
        vec[r + 1]--;
        if (l > r) {
            vec[0]++;
            vec[M]--;
        }
    }
    if (ok) {
        cout << M << '\n';
        return;
    }
    ll prv = 0;
    ll sum = 0, ans = 0;
    for (auto [x, y] : vec) {
        bool tmpp = sum;
        sum += y;
        if (tmpp)
            ans += x - prv;
        if (sum)
            prv = x;
    }
    cout << ans << '\n';
}

int32_t main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    solve();
    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...