#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define SZ(s) (int)s.size()
#define ff first
#define ss second
ll INF = LLONG_MAX;
int main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
ll n, a, b;
cin >> n >> a >> b;
ll s = 0;
vector <pair <ll, ll>> v;
ll k = (a / __gcd(a, b+1LL));
k *= min(b, INF/k);
for(int i = 1; i <= n; i++) {
ll l, r;
cin >> l >> r;
l %= k, r %= k;
if(l <= r) {
v.push_back({l, r});
}
else {
v.push_back({l, k-1});
v.push_back({0, r});
}
}
sort(v.begin(), v.end());
ll mn = v[0].ff, mx = v[0].ss, ans = 0;
for(auto i : v){
if(i.ff > mx){
ans += (mx-mn+1);
mn = 1e18;
mx = -1e18;
}
mn = min(i.ff,mn);
mx = max(mx,i.ss);
}
if(mn <= mx){
ans += (mx-mn+1);
}
cout << ans;
return 0;
}
# | 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... |