Submission #1174989

#TimeUsernameProblemLanguageResultExecution timeMemory
1174989JelalTkmStrange Device (APIO19_strange_device)C++20
65 / 100
314 ms20288 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("O3") #pragma GCC target ("sse4") using namespace std; #define int long long int const int N = 1000 + 10; const int md = 1e9 + 7; const int INF = 1e9; int32_t main(int32_t argc, char *argv[]) { ios::sync_with_stdio(false); cin.tie(nullptr); int T = 1; // cin >> T; while (T--) { int n, A, B; cin >> n >> A >> B; int T = 1e18 + 10; A /= __gcd(A, B + 1); if (A <= (LLONG_MAX / B)) T = A * B; vector<pair<int, int>> seg; for (int i = 1; i <= n; i++) { int l, r; cin >> l >> r; l %= T, r %= T; if (l <= r) { seg.push_back({l, r}); } else { seg.push_back({l, T - 1}); seg.push_back({0, r}); } } sort(seg.begin(), seg.end()); int l = -1, r = -2; int ans = 0; for (int i = 0; i < (int) seg.size(); i++) { auto [a, b] = seg[i]; if ((b - a + 1) > T) { cout << T << '\n'; return 0; } if (r < a) { ans += (r - l) + 1; l = a, r = b; } else { r = max(r, b); } } ans += (r - l) + 1; 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...