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;
long long i,j,a,b,tt;
long long x,r,m,n,s,t,k,l,y,z;
set <pair<long long,long long>> p,c,d,e;
int main(){
cin >> n>>a>>b;
m = a/__gcd(a,b+1);
if (m >1000000000000000000/b)
m = 1000000000000000001;
else m*=b;
a=m;
for (i = 0; i<n; i ++){
cin >>x>>y;
if (y-x+1>=a){
cout << a;
return 0;
}
x%=a;
y%=a;
if (x <=y){
p.insert({x,y});
}
else {
p.insert({0,y});
p.insert({x,a-1});
}
}
t = -1;
while (p.size()){
auto u=*p.begin();
p.erase(*p.begin());
x=u.first;
y=u.second;
t=max(t,x-1);
s+=max(y-t,0ll);
t=max(y,t);
}
cout <<s;
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... |