Submission #1227036

#TimeUsernameProblemLanguageResultExecution timeMemory
1227036ssitaramStrange Device (APIO19_strange_device)C++20
100 / 100
621 ms79644 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; ll A, B; cin >> A >> B; ll MOD = A / gcd(B + 1, A); if (MOD >= 2e18 / B) { MOD = 2e18; } else { MOD *= B; } cerr << MOD << '\n'; map<ll, int> mp; while (n--) { ll l, r; cin >> l >> r; if (r - l + 1 >= MOD) { cout << MOD << '\n'; return 0; } l %= MOD; r %= MOD; if (l <= r) { ++mp[l]; if (r + 1 != MOD) --mp[r + 1]; } else { ++mp[l]; ++mp[0]; --mp[r + 1]; } } vector<pair<ll, int>> v; for (auto& [a, b] : mp) { v.push_back({a, b}); } int h = 0; ll ans = 0; for (int i = 0; i < v.size(); ++i) { h += v[i].second; if (h > 0) { ans += (i == v.size() - 1 ? MOD : v[i + 1].first) - v[i].first; } } 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...