Submission #224436

#TimeUsernameProblemLanguageResultExecution timeMemory
224436BruteforcemanStrange Device (APIO19_strange_device)C++11
5 / 100
2261 ms53628 KiB
#include <bits/stdc++.h> using namespace std; const long long INF = 3e18; int main() { int n; long long A, B; cin >> n >> A >> B; for(int t = 0; t < 100; t++) { // cout << t << " " << (t + (t / B)) % A << " " << t % B << endl; } long long per; if((INF / A) < B) { per = INF; } else { per = A * B; } vector <pair <long long, long long>> v; auto addRange = [&] (long long p, long long q) { v.emplace_back(q, p); // cout << p << " " << q << endl; }; for(int i = 0; i < n; i++) { long long p, q; cin >> p >> q; if((q - p + 1) >= per) { cout << per << endl; exit(0); } p %= per; q %= per; if(p <= q) { addRange(p, q); } else { addRange(p, per - 1); addRange(0, q); } } sort(v.begin(), v.end()); long long ans = 0; long long last = -1; for(auto i : v) { long long l = i.second; long long r = i.first; ans += r - max(last + 1, l) + 1; // cout << "from " << last << " to " << min << endl; last = r; } cout << ans << endl; 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...