제출 #564110

#제출 시각아이디문제언어결과실행 시간메모리
564110ngpin04이상한 기계 (APIO19_strange_device)C++14
40 / 100
617 ms68932 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair #define TASK "" #define bit(x) (1LL << (x)) #define getbit(x, i) (((x) >> (i)) & 1) #define ALL(x) (x).begin(), (x).end() using namespace std; template <typename T1, typename T2> bool mini(T1 &a, T2 b) { if (a > b) {a = b; return true;} return false; } template <typename T1, typename T2> bool maxi(T1 &a, T2 b) { if (a < b) {a = b; return true;} return false; } mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l, int r) { return l + rd() % (r - l + 1); } const int N = 1e5 + 5; const int oo = 1e9; const long long ooo = 1e18; const int mod = 1e9 + 7; // 998244353; const long double pi = acos(-1); long long lcm(long long a, long long b) { long long res = a / __gcd(a, b); if (res > 2 * ooo / b) return 2 * ooo; return res * b; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); #ifdef ONLINE_JUDGE // freopen(TASK".inp","r",stdin); // freopen(TASK".out","w",stdout); #endif long long n, A, B; cin >> n >> A >> B; long long x = __gcd(A, B + 1); long long y = __gcd(A, B); A /= x; if (A > 2 * ooo / y) A = 2 * ooo; else A *= y; long long len = lcm(A, B); vector <pair <long long, int>> events; for (int i = 1; i <= n; i++) { long long l, r; cin >> l >> r; if (r - l + 1 >= len) return cout << len, 0; events.push_back(mp(l % len, 1)); events.push_back(mp(r % len + 1, -1)); if (l % len > r % len) { events.push_back(mp(0, 1)); events.push_back(mp(len, -1)); } } sort(ALL(events)); long long ans = 0; long long pre = 0; int cnt = 0; for (pair <long long, int> pir : events) { if (cnt > 0) ans += pir.fi - pre; cnt += pir.se; pre = pir.fi; } cout << ans; 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...