제출 #240335

#제출 시각아이디문제언어결과실행 시간메모리
240335valerikkStrange Device (APIO19_strange_device)C++14
0 / 100
5082 ms86332 KiB
#include<bits/stdc++.h> using namespace std; #define x first #define y second #define pb push_back #define eb emplace_back #define mp make_pair #define f(i, n) for (int i = 0; i < (n); i++) #define all(a) (a).begin(), (a).end() #define sz(a) (int)(a).size() #define ll long long #define ld long double #define int long long #define pii pair<int, int> int get_ob(vector<pii> a) { vector<pii> v; f(i, sz(a)) { v.eb(a[i].x, 0); v.eb(a[i].y + 1, 1); } sort(all(v)); int ob = 0, cnt = 0; f(i, sz(v) - 1) { if (v[i].x == 0) cnt++; else cnt--; if (cnt) ob += v[i + 1].x - v[i].x; } return ob; } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); int n, a, b; cin >> n >> a >> b; int p = a / __gcd(a, b + 1); vector<int> l(n), r(n); f(i, n) cin >> l[i] >> r[i]; int ans = 0; f(z, b) { vector<pii> v; f(i, n) { if (z > r[i]) continue; int ql = (l[i] - z + b - 1) / b; int qr = (r[i] - z) / b; if (ql <= qr) { ql %= p; qr %= p; if (ql <= qr) { v.pb({ql, qr}); } else { v.pb({0, qr}); v.pb({ql, p - 1}); } } } ans += get_ob(v); } 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...