#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second
const int N = 2e3 + 5;
int n, a, b, l, r;
vector<pii> loj;
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> a >> b;
a /= __gcd(a, b + 1);
int cycle;
if (a <= LLONG_MAX / b)
cycle = a * b;
else
cycle = 4e18;
for (int i = 1; i <= n; i++)
{
cin >> l >> r;
l %= cycle;
r %= cycle;
if (l <= r)
loj.push_back({l, r});
else
{
loj.push_back({l, cycle - 1});
loj.push_back({0, r});
}
}
sort(loj.begin(), loj.end());
l = loj[0].fi;
r = loj[0].se;
int ans = 0;
for (int i = 1; i < loj.size(); i++)
{
if (loj[i].fi > r)
{
ans += r - l + 1;
l = loj[i].fi;
r = loj[i].se;
}
else
r = max(r, loj[i].se);
}
ans += r - l + 1;
cout << 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... |