This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |