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,v=234560;
set <pair<long long,long long>> p,c,d,e;
int main(){
    cin >> n>>a>>b;
    if (n == 1){
        cin >>x>>y;
        l = y-x+1;
        if (l/a < b){
            cout << l;
        }
        else cout << a*b;
        return 0;
    }
    if (b ==1||a*b<=1000000){
        if (b == 1&&a%2 == 0)
            a/=2;
        a=b*a;
        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;
    }
    for (i = 0; i<n; i ++){
        cin >>x>>y;
        for (j = x; j<=y; j ++){
            l = (j+j/b)%a;
            m=j%b;
            p.insert({l,m});
        }
    }
    cout << p.size();
    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... |