Submission #1319228

#TimeUsernameProblemLanguageResultExecution timeMemory
1319228ghammazhassanStrange Device (APIO19_strange_device)C++20
10 / 100
358 ms31696 KiB
// #include <bits/stdc++.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <map>
#include <unordered_map>
#include <vector>
#include <iomanip>
#include <string>
#include <queue>
#include <set>
#include <deque>
using namespace std;
#define int long long
#define endl "\n"
#define fi first
#define se second
const int M=1e9+7;
const int inf = 1e15;
const int LOG=17;
const int N=2e5+5;
int n , m , c , w , k , t=1 , q=1 , x , y , z , l , r;
int A,B;
void solve(){
    cin >> n >> A >> B;
    int g=__gcd(B+1,A);
    A/=g;
    if (log2(A)+log2(B)>=60){
        A=B=1e9+1;
    }
    vector<pair<int,int>>a(n);
    for (int i=0;i<n;i++){
        cin >> a[i].fi >> a[i].se;
        a[i].fi%=(A*B);
        a[i].se%=(A*B);
        if (a[i].se<a[i].fi){
            a.push_back({0,a[i].se});
            a[i].se=A*B-1;
        }      
    }
    sort(a.begin(),a.end());
    n=a.size();
    for (int i=1;i<n;i++){
        a[i-1].se=min(a[i].fi-1,a[i-1].se);
    }
    c=n;
    for (int i=0;i<n;i++){
        c+=a[i].se-a[i].fi;
    }
    cout << c << endl;
}
signed main()    
{   
    // #ifndef ONLINE_JUDGE
    // freopen("input.txt","r" ,stdin);
    // freopen("output.txt","w",stdout);
    // #endif
    ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE
    cin.tie(0), cout.tie(0);//DO NOT USE IN INTERACTIVE
    cout << fixed << setprecision(9);
    srand(time(0));
    // int t=1;
    // cin >> t;
    for (int _=1;_<=t;_++){
        solve();
        q++;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...