/**
* In the name of Allah
* We are nothing and you're everything
* author: najmuddin
**/
#include <bits/stdc++.h>
using namespace std;
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
#define int ll
const char nl = '\n';
const int inf = 1e18+1;
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, A, B;
cin >> n >> A >> B;
int T = inf;
// A/gcd(A, B+1)*B
if (B <= inf/(A/__gcd(A, B+1)))T = A/__gcd(A, B+1)*B;
vector<pair<int, int>> v;
for (int i = 0; i < n; ++i) {
int l, r; cin >> l >> r;
if (r-l+1 >= T) {
return cout << T, 0;
}
l %= T, r %= T;
if (l <= r)v.push_back({l, r});
else {
v.push_back({l, T-1});
v.push_back({0, r});
}
}
sort(all(v));
int l = v[0].first, r = v[0].second;
int ans = 0;
for (int i = 1; i < sz(v); ++i) {
if (v[i].first > r) {
ans += r-l+1;
l = v[i].first;
}
r = max(r, v[i].second);
}
ans += r-l+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... |