제출 #1010159

#제출 시각아이디문제언어결과실행 시간메모리
1010159RandomUser이상한 기계 (APIO19_strange_device)C++17
5 / 100
971 ms62996 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int mod = 1e9 + 7; int main() { ll n, A, B; cin >> n >> A >> B; ll P = A / __gcd(A, B + 1) * B; if(P <= 0) { ll res = 0; for(int i=0; i<n; i++) { ll L, R; cin >> L >> R; res += R - L + 1; } cout << res << endl; return 0; } set<pair<ll, ll> > st; for(int i=0; i<n; i++) { ll L, R; cin >> L >> R; if(R - L + 1 >= P) { cout << P << endl; return 0; } ll a = L % P, b = R % P; if(a <= b) { st.insert({ a, b }); } else { st.insert({ a, P - 1 }); st.insert({ 0, b }); } } ll res = 0, right_point = -1; for(auto &it : st) { if(it.second <= right_point) continue; if(it.first > right_point) { res += it.second - it.first + 1; right_point = it.second; } else { res += it.second - right_point; } } cout << res << '\n'; 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...