제출 #1348571

#제출 시각아이디문제언어결과실행 시간메모리
1348571Born_To_Laugh이상한 기계 (APIO19_strange_device)C++17
35 / 100
247 ms16948 KiB
// Born_To_Laugh - Hughie Do
#include <bits/stdc++.h>
#define alle(AC) AC.begin(), AC.end()
#define fi first
#define se second
using namespace std;
typedef long long ll;
[[maybe_unused]] const ll MOD = 998244353, INF = 3e18 + 7;
#define int ll
vector<pair<int, int>> range;
int n, A, B;
int a;
int chutrinh;
void solve(){
    cin >> n >> A >> B;
    a = A / __gcd(B + 1, A);
    chutrinh = a * B;//0 -> chutrinh - 1
    for(int i=1; i<=n; ++i){
        int l, r;cin >> l >> r;
        if(r - l + 1 >= chutrinh){
            cout << chutrinh << '\n';
            exit(0);
        }
        l = l % chutrinh;
        r = r % chutrinh;
        if(l <= r) range.push_back({l, r});
        else{
            range.push_back({l, chutrinh - 1});
            range.push_back({0, r});
        }
    }
    sort(alle(range));
    ll ans = 0;
    ll maxr = -1;
    for(auto &elm: range){
        if(elm.se - max(elm.fi - 1, maxr) >= 1ll){
            ans += elm.se - max(elm.fi - 1, maxr);
        }
        maxr = max(maxr, elm.se);
    }
    cout << ans << '\n';
}
signed main(){
    // freopen("inp.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
}
#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...