#include<bits/stdc++.h>
#define ll long long
#define MAX 1000000000000000000
using namespace std;
int main(){
ll n, a, b, mo, l, r;
cin>>n>>a>>b;
ll va = a / __gcd(a, b + 1);
if (MAX / va < b) mo = MAX + 1;
else mo = va * b;
map<ll, ll> ev;
bool f = 0;
for (int i = 0; i < n; i++){
cin>>l>>r;
if (r - l + 1 >= mo) f = 1;
l %= mo, r %= mo;
if (l <= r){
ev[l]++;
ev[r]--;
}
else{
ev[0]++;
ev[r]--;
ev[l]++;
}
}
if (f){
cout<<mo<<"\n";
return 0;
}
ev[mo]++;
ll la = -1, ans = 0, pr = 0;
for (auto el : ev){
if (pr == 0){
ans += max(el.first - la - 1, 0LL);
}
la = el.first;
pr += el.second;
}
cout<<mo - ans;
}
# | 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... |