Submission #393912

#TimeUsernameProblemLanguageResultExecution timeMemory
393912ritul_kr_singhStrange Device (APIO19_strange_device)C++17
10 / 100
621 ms16988 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define sp << ' ' << #define nl << '\n' const int INF = 1e18; bool comp(array<int, 2> &x, array<int, 2> &y){ return x[1] < y[1]; } signed main(){ cin.tie(0)->sync_with_stdio(0); int n, A, B, l, r; cin >> n >> A >> B; int g = A / __gcd(A, B + 1LL); if(g > INF / B) g = INF + 5; else g *= B; vector<array<int, 2>> q; while(n--){ cin >> l >> r; int lm = l % g, rm = r % g; if(l + (g - lm) <= r) q.push_back({lm, g-1}), q.push_back({0, rm}); else q.push_back({lm, rm}); } int last = -1, res = 0; sort(q.begin(), q.end(), comp); for(auto &i : q){ last = max(last, i[0] - 1LL); res += i[1] - last; last = i[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...