Submission #222712

#TimeUsernameProblemLanguageResultExecution timeMemory
222712shart23Strange Device (APIO19_strange_device)C++14
10 / 100
594 ms16852 KiB
#include <bits/stdc++.h>

#define int long long
#define endl "\n"

using namespace std;

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n, a, b;
    cin >> n >> a >> b;
    long double k1 = a * (long double) b;
    int k = (int) 1e18 + 1;
    if (k1 <= 1e18) {
        k = a * b;
    }
    vector<pair<int, int>> segs;
    for (int i = 0; i < n; i++) {
        int l, r;
        cin >> l >> r;
        if (r - l + 1 >= k) {
            segs.emplace_back(0, k - 1);
            continue;
        }
        int l1 = l % k, r1 = r % k;
        if (r1 < l1) {
            segs.emplace_back(0, r1);
            segs.emplace_back(l1, k - 1);
        } else {
            segs.emplace_back(l1, r1);
        }
    }
    sort(segs.begin(), segs.end());
    int mxr = -1;
    int res = 0;
    for (auto x : segs) {
        res += max(x.second - max(mxr, x.first - 1), 0LL);
        mxr = max(x.second, mxr);
    }
    cout << res << endl;
}
#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...