Submission #597794

#TimeUsernameProblemLanguageResultExecution timeMemory
597794OzyStrange Device (APIO19_strange_device)C++17
65 / 100
622 ms40348 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; #define lli long long int #define debug(a) cout << #a << " = " << a << endl #define debugsl(a) cout << #a << " = " << a << ", " #define rep(i,a,b) for(int i = (a); i <= (b); i++) #define repa(i,a,b) for(int i = (a); i >= (b); i--) #define LIM (1ll << 62) lli a,b,n,cont,x,y,mult,ini,res,k; vector<pair<lli,lli> > orden; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> a >> b; k = a/__gcd(a,b+1); if (LIM/k < b) mult = LIM; else { mult = k*b; } rep(i,1,n) { cin >> x >> y; x %= mult; y %= mult; if (x > y) { orden.push_back({0,1}); orden.push_back({mult-1,2}); } orden.push_back({x,1}); orden.push_back({y,2}); } sort(orden.begin(), orden.end()); ini = -1; cont = 0; res = 0; for (auto act:orden) { if (act.second == 1) { cont++; if (ini == -1) ini = act.first; } else cont--; if (cont == 0) { res += (act.first - ini) + 1; ini = -1; } } cout << res; }
#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...