제출 #1278943

#제출 시각아이디문제언어결과실행 시간메모리
1278943janson0109이상한 기계 (APIO19_strange_device)C++20
0 / 100
13 ms8396 KiB
#include <bits/stdc++.h>
#define F first
#define S second
#define lol ios::sync_with_stdio(false);cin.tie(NULL);
typedef int ll;
typedef long double ld;
using namespace std;
const ll M = 998244353;

int main() {
	lol
    ll n, a, b;
    cin >> n >> a >> b;
    vector<pair<ll,ll>> lr(n);
    for(ll i=0; i<n; i++) cin >> lr[i].F >> lr[i].S;
    ll m = a*b/gcd(a, b-1);
    vector<pair<ll,ll>> in;
    for(ll i=0; i<n; i++) {
        if(lr[i].S - lr[i].F >= m - 1) {cout << m; return 0;}
        ll d = ((lr[i].S)/m) * m;
        if(d > lr[i].F) {
            in.push_back({lr[i].F % m, m-1});
            in.push_back({0, lr[i].S % m});
        } else in.push_back({lr[i].F % m, lr[i].S % m});
    }
    sort(in.begin(), in.end());
    in.push_back({m, m});
    ll curmx = -1, cur = 0, ans = 0;
    for(auto & x : in) {
        if(x.F > curmx) {
            ans += (curmx - cur + 1);
            curmx = x.S, cur = x.F;
        } else curmx = max(x.S, curmx);
    }
    cout << ans;
    
    return 0;
}
#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...