Submission #672849

#TimeUsernameProblemLanguageResultExecution timeMemory
672849ParsaS이상한 기계 (APIO19_strange_device)C++17
100 / 100
943 ms100136 KiB
// In the name of God #include<bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define mp make_pair typedef long long ll; const int N = 2e5 + 5; ll A, B; int n; void solve() { cin >> n >> A >> B; ll C = __gcd(A, B + 1); ll Ap = A / C; ll M; if ((ll)1e18 / B < Ap) { M = 1e18 + 1; } else M = B * Ap; /*ll g = __gcd(Ap, B); ll M; if (B > 1e9 || (ll)1e18 / (B * B) < (Ap / g)) M = 1e18 + 1; else { M = Ap / g * B * B; }*/ bool ok = false; /* for (int i = 1; i < 100; i++) { if ((i + i / B) % A == 0 && i % B == 0) { cout << i << endl; } }*/ map<ll, int> vec; for (int i = 0; i < n; i++) { ll l, r; cin >> l >> r; if (r - l >= M) { ok = true; } l %= M, r %= M; vec[l]++; vec[r + 1]--; if (l > r) { vec[0]++; vec[M]--; } } if (ok) { cout << M << '\n'; return; } ll prv = 0; ll sum = 0, ans = 0; for (auto [x, y] : vec) { bool tmpp = sum; sum += y; if (tmpp) ans += x - prv; if (sum) prv = x; } cout << ans << '\n'; } int32_t main() { ios::sync_with_stdio(0), cin.tie(0), cout.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...