Submission #554216

#TimeUsernameProblemLanguageResultExecution timeMemory
554216happypotatoStrange Device (APIO19_strange_device)C++17
5 / 100
1462 ms33360 KiB
#include <bits/stdc++.h> using namespace std; #define int long long void solve() { int n, a, b; cin >> n >> a >> b; priority_queue<pair<int, bool>, vector<pair<int, bool> >, greater<pair<int, bool> > > pq; int mod; if (log2(a) + log2(b) > log2(4e18)) mod = 4e18; else mod = a * b; while (n--) { int l, r; cin >> l >> r; l %= mod; r %= mod; if (l > r) { pq.push({l, true}); pq.push({mod, false}); pq.push({0, true}); pq.push({r + 1, false}); } else { pq.push({l, true}); pq.push({r + 1, false}); } } int prev = 0, ans = 0; int cnt = 0; while (!pq.empty()) { pair<int, bool> cur = pq.top(); pq.pop(); if (cnt) ans += cur.first - prev; prev = cur.first; cnt += (cur.second ? 1 : -1); } cout << ans << endl; } signed main() { 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...