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