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){
        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;
    }
    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;
}
| # | 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... |