Submission #1020184

#TimeUsernameProblemLanguageResultExecution timeMemory
1020184avighnaStrange Device (APIO19_strange_device)C++17
100 / 100
562 ms97676 KiB
#include <bits/stdc++.h> typedef long long ll; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); ll n, a, b; std::cin >> n >> a >> b; // w (B + 1) mod A = 0 ll cycle = (b / std::gcd(a, b + 1) >= (ll(1e18) + 1) / a) ? ll(1e18) + 1 : a / std::gcd(a, b + 1) * b; std::vector<std::pair<ll, ll>> ranges; std::map<ll, ll> mp; while (n--) { ll l, r; std::cin >> l >> r; if (r - l + 1 >= cycle) { std::cout << cycle << "\n"; return 0; } ll _l = l % cycle, _r = r % cycle; if (_l > _r) { ranges.push_back({_l, cycle - 1}); ranges.push_back({0, _r}); } else { ranges.push_back({_l, _r}); } } for (auto &[l, r] : ranges) { mp[l] = std::max(mp[l], r); } ll right = 0; ll ans = 0; for (auto &i : mp) { if (i.second < right) { continue; } right = std::max(right, i.first); ans += i.second - right + 1; right = i.second + 1; } std::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...