제출 #1308118

#제출 시각아이디문제언어결과실행 시간메모리
1308118harryleee이상한 기계 (APIO19_strange_device)C++20
65 / 100
340 ms17108 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second
const int N = 2e3 + 5;
int n, a, b, l, r;
vector<pii> loj;

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n >> a >> b;
    
    a /= __gcd(a, b + 1);
    int cycle;
    if (a <= LLONG_MAX / b)
        cycle = a * b;
    else
        cycle = 4e18;
    for (int i = 1; i <= n; i++)
    {
        cin >> l >> r;
        l %= cycle;
        r %= cycle;
        if (l <= r)
            loj.push_back({l, r});
        else
        {
            loj.push_back({l, cycle - 1});
            loj.push_back({0, r});
        }
    }
    sort(loj.begin(), loj.end());
    l = loj[0].fi;
    r = loj[0].se;
    int ans = 0;
    for (int i = 1; i < loj.size(); i++)
    {
        if (loj[i].fi > r)
        {
            ans += r - l + 1;
            l = loj[i].fi;
            r = loj[i].se;
        }
        else
            r = max(r, loj[i].se);
    }
    ans += r - l + 1;
    cout << ans;
}
#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...