Submission #252822

#TimeUsernameProblemLanguageResultExecution timeMemory
252822ErkhemkhuuStrange Device (APIO19_strange_device)C++17
15 / 100
218 ms3704 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define F first #define S second const ll N = 100005; const ll lim = 1e18; pair <ll, ll> arr[N]; int main() { ll n, a, b, t, m, i, sz, l, r, ans; cin >> n >> a >> b; t = a / (__gcd(a, b + 1)); m = ((t > lim / b) ? (lim + 1) : (t * b)); sz = 0; while(n--) { cin >> l >> r; if(r - l + 1 >= m) { cout << m << "\n"; return 0; } l %= m; r %= m; if(l <= r) { arr[++sz].F = l; arr[sz].S = r; } else { arr[++sz].F = l; arr[sz].S = m - 1; arr[++sz].F = 0; arr[sz].S = r; } } sort(arr + 1, arr + sz + 1); ans = 0; r = -1; for(i = 1; i <= sz; i++) { r = max(r, arr[i].F - 1); ans += max(0ll, arr[i].S - r); r = max(r, arr[i].S); } cout << ans << "\n"; 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...