Submission #404764

#TimeUsernameProblemLanguageResultExecution timeMemory
404764gevacrtStrange Device (APIO19_strange_device)C++17
100 / 100
584 ms35144 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #define int ll typedef vector<int> vi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<vi> vvi; typedef vector<vii> vvii; #define INF INT_MAX #define MOD 1000000007 #define all(x) x.begin(), x.end() signed main(){ ios::sync_with_stdio(false); cin.tie(NULL); int Q, A, B; cin >> Q >> A >> B; int A1 = A/__gcd(A, B+1); if(A1 <= int(1e18)/B) A1 *= B; else A1 = 1e18+10; vii RC; RC.reserve(Q*2); while(Q--){ int l, r; cin >> l >> r; if(r-l+1 >= A1) RC.push_back({0, A1-1}); else{ int lm = l%A1, rm = r%A1; if(lm <= rm) RC.push_back({lm, rm}); else RC.push_back({lm, A1-1}), RC.push_back({0, rm}); } } sort(all(RC)); int ans = 0, prev = -1; for(auto [l, r] : RC){ l = max(l, prev+1); ans += max(0ll, r-l+1); prev = max(prev, r); } cout << ans << endl; 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...