This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll n, A, B;
vector<pair<ll, ll>> segs;
void solve2() {
ll ans = 0;
for(auto & [l, r] : segs) {
cin >> l >> r;
ans += r - l + 1;
}
cout << ans << endl;
}
ll gcd(ll a, ll b) {
return b ? gcd(b, a % b) : a;
}
//x(B+1) == 0
main() {
cin >> n >> A >> B;
segs.resize(n);
ll cycle = 1e18;
ll C = A / (gcd(B + 1, A));
if((B * C) / C == B) cycle = B * C;
else {
solve2();
return 0;
}
if(cycle > 1e18 + 10) cycle = 1e18 + 10;
vector<pair<ll, bool>> evt;
for(auto & [l, r] : segs) {
cin >> l >> r;
r++;
if(l >= cycle) {
ll tmp = (l / cycle) * cycle;
l -= tmp;
r -= tmp;
}
if(r >= cycle*2) {
cout << cycle << endl;
return 0;
}
if(r >= cycle) {
evt.push_back({l, true});
evt.push_back({0, true});
evt.push_back({r - cycle, false});
} else {
evt.push_back({l, true});
evt.push_back({r, false});
}
}
sort(evt.begin(), evt.end());
ll prev = 0;
int cnt = 0;
ll ans = 0;
for(auto [t, b] : evt) {
ll delta = t - prev;
prev = t;
if(cnt > 0) ans += delta;
if(b) cnt++;
else cnt--;
}
if(cnt > 0) ans += cycle - prev;
cout << ans << endl;
}
Compilation message (stderr)
strange_device.cpp:20:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
20 | main() {
| ^~~~
# | 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... |