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;
#define ll long long
int main(){
int n; ll a, b; cin >> n >> a >> b;
ll p = a / __gcd(a, b + 1) * b; map<ll, int> d;
for (int i = 0; i < n; i++){
ll l, r; cin >> l >> r;
if (r - l + 1 >= p){ d[0]++, d[p]--; continue; }
l %= p; r %= p;
if (l <= r) d[l]++, d[r + 1]--;
else d[0]++, d[r + 1]--, d[l]++, d[p]--;
}
ll cnt = 0, pre, ans = 0;
for (auto &val : d){
if (cnt) ans += val.first - pre;
cnt += val.second; pre = val.first;
}
cout<<ans<<endl;
}
# | 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... |