Submission #1044830

#TimeUsernameProblemLanguageResultExecution timeMemory
1044830vjudge1Strange Device (APIO19_strange_device)C++17
10 / 100
410 ms74692 KiB
#include <bits/stdc++.h> using namespace std; #define fast ios::sync_with_stdio(0);cin.tie(0); typedef long long ll; #define f first #define s second #define LOGN 21 const ll MOD = 1e9 + 7; const ll MAXN = 3e4 + 100; #define int long long set<pair<int,int>> st; void add_seg(int l, int r) { st.insert({l, r}); } signed main() { fast ll n, A, B, mx = -1; cin >> n >> A >> B; if (B < A) swap(A, B); if ((((long long)1e9) * ((long long)1e9) + A - 1LL) / A <= B) { int ans = 0; for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; add_seg(l, r); } for (auto u : st) { ans += max(0LL, (u.s - max(mx + 1, u.f)) + 1); mx = max(mx, u.s); } cout << ans << "\n"; return 0; } A *= B; bool control = true; for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; if (r - l + 1 >= A) { cout << A << "\n"; control = false; } int x = l % A; int y = r % A; if (y < x) { add_seg(x, A-1); add_seg(0, y); } else add_seg(x, y); } if (!control) return 0; ll ans = 0; for (auto u : st) { ans += max(0LL, u.s - max(mx + 1, u.f) + 1); mx = max(mx, u.s); } cout << ans << "\n"; }
#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...