Submission #467431

#TimeUsernameProblemLanguageResultExecution timeMemory
467431SirCovidThe19thStrange Device (APIO19_strange_device)C++17
100 / 100
2033 ms100176 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define inf 2e18 int main(){ int n; ll a, b, p; cin >> n >> a >> b; map<ll, int> d; p = a / __gcd(a, b + 1); p = (p >= inf / b) ? inf : p * b; for (int i = 0; i < n; i++){ ll l, r; cin >> l >> r; if (r - l + 1 >= p){ d[0]++, d[p]--; continue; } l %= p; r %= p; if (l <= r) d[l]++, d[r + 1]--; else d[0]++, d[r + 1]--, d[l]++, d[p]--; } int cnt = 0; ll pre, ans = 0; for (auto &val : d){ if (cnt) ans += val.first - pre; cnt += val.second; pre = val.first; } cout<<ans<<endl; }
#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...