Submission #1031821

#TimeUsernameProblemLanguageResultExecution timeMemory
1031821stdfloatStrange Device (APIO19_strange_device)C++17
100 / 100
607 ms116832 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

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

    int n;
    ll A, B;
    cin >> n >> A >> B;

    map<ll, int> m;
    __int128 L = (__int128)A / __gcd(A, B + 1) * B;
    while (n--) {
        ll l, r;
        cin >> l >> r;

        if (L <= r - l + 1) {
            m[0]++; m[L]--;
            continue;
        }

        m[l % L]++; m[r % L + 1]--;

        if (l % L > r % L) {
            m[0]++; m[L]--;
        }
    }

    vector<pair<ll, int>> v;
    for (auto i : m) v.push_back(i);

    int sm = 0;
    ll ans = 0;
    for (int i = 0; i + 1 < (int)v.size(); i++) {
        sm += v[i].second;
        ans += !!sm * (v[i + 1].first - v[i].first);
    }

    cout << ans << '\n';
}
#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...