제출 #663038

#제출 시각아이디문제언어결과실행 시간메모리
663038Ai7081이상한 기계 (APIO19_strange_device)C++17
65 / 100
649 ms82100 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll, ll> const int N = 1e6 + 5; ll n, a, b, loop, l, r; set<pii> s; ll gcd(ll c1, ll c2) { if (!(max(c1,c2)%min(c1,c2))) return min(c1, c2); return gcd(min(c1,c2), max(c1,c2)%min(c1,c2)); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> a >> b; loop = a*b/gcd(a,b+1); while (n--) { cin >> l >> r, l%=loop, r%=loop; if (l>r) s.insert({0,r}), s.insert({l,loop-1}); else s.insert({l,r}); } auto it2=s.begin(), it1=it2++; while (it2!=s.end()) { if (it1->second >= it2->first) { pii in = {it1->first, max(it1->second, it2->second)}; it1=s.erase(it1), it1=s.erase(it1); it2=s.insert(in).first; } it1=it2++; } ll out=0; for (auto [x,y]:s) out += y-x+1; cout << out; 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...