Submission #1172454

#TimeUsernameProblemLanguageResultExecution timeMemory
1172454fryingducStrange Device (APIO19_strange_device)C++20
100 / 100
585 ms63132 KiB
#include "bits/stdc++.h" using namespace std; #ifdef duc_debug #include "bits/debug.h" #else #define debug(...) #endif const int maxn = 1e6 + 6; const long long inf = 1e18; int n; long long a, b; void solve() { cin >> n >> a >> b; long long d = __gcd(b + 1, a); if (inf / b < a / d) { long long res = 0; for (int i = 1; i <= n; ++i) { long long l, r; cin >> l >> r; res += (r - l + 1); } cout << res; return; } long long g = (a / d) * b; // debug(g); map<long long, int> mp; for (int i = 1; i <= n; ++i) { long long l, r; cin >> l >> r; if (r - l >= g) { cout << g << '\n'; return; } l %= g, r %= g; ++mp[l], --mp[r + 1]; if (l > r) { ++mp[0]; --mp[g]; } } long long res = 0; long long prv = 0; long long cur = 0; for (auto [x, y] : mp) { if (cur == 0) { res += x - prv; } cur += y; if (cur == 0) { prv = x; } } res += (g - prv); cout << g - res; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); solve(); 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...