Submission #1130197

#TimeUsernameProblemLanguageResultExecution timeMemory
1130197Hamed_GhaffariStrange Device (APIO19_strange_device)C++20
100 / 100
464 ms18412 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; using pii = pair<int, int>; using pll = pair<long long, long long>; using ull = unsigned long long; #define X first #define Y second #define SZ(x) int(x.size()) #define all(x) x.begin(), x.end() #define mins(a,b) (a = min(a,b)) #define maxs(a,b) (a = max(a,b)) #define pb push_back #define Mp make_pair #define lc id<<1 #define rc lc|1 #define mid ((l+r)/2) mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); const ll INF = ll(1e18)+23; const ll MOD = 1e9 + 7; const int MXN = 2e5 + 5; const int LOG = 23; ll mul(ll a, ll b) { return INF/a<b ? INF : a*b; } int n; ll A, B; void Main() { cin >> n >> A >> B; ll L = mul(A/gcd(A, B+1), B); vector<pll> vc; while(n--) { ll l, r; cin >> l >> r; if(r-l+1>=L) { cout << L << '\n'; return; } l %= L; r %= L; if(l<=r) vc.pb(Mp(l,r)); else vc.pb(Mp(l, L-1)), vc.pb(Mp(0, r)); } sort(all(vc)); vector<pll> ans; for(auto [l, r] : vc) if(ans.empty() || l>ans.back().Y+1) ans.pb(Mp(l, r)); else maxs(ans.back().Y, r); ll res=0; for(auto [l, r] : ans) res += r-l+1; cout << res << '\n'; } int32_t main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); int T = 1; // cin >> T; while(T--) Main(); 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...