# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
513596 | 2022-01-17T09:52:24 Z | amukkalir | 이상한 기계 (APIO19_strange_device) | C++17 | 1079 ms | 41320 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define pii pair<int,int> #define pll pair<ll, ll> #define fi first #define se second #define pb push_back #define mp make_pair ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a%b); } int n, a, b; signed main () { scanf("%d %d %d", &n, &a, &b); vector<pll> v; for(int i=0; i<n; i++) { ll l, r; scanf("%lld %lld", &l, &r); v.pb(mp(l,r)); } ull ans = 0; //if r max < a*b / gcd(a, b+1) if(v.back().se / b < a / gcd(a, b+1)) { for(int i=0; i<n; i++) { ans += v[i].se - v[i].fi + 1; } } else { ll c = a/gcd(a, b+1) * b; for(int i=0; i<n; i++) { if(v[i].se % c < v[i].fi % c || v[i].se >= v[i].fi + c) { v.pb(mp(0, v[i].se % c)); v[i].se = c-1; } v[i].fi %= c; v[i].se %= c; } cerr << c << endl; sort(v.begin(), v.end(), [&] (pll a, pll b) { if(a.fi % c == b.fi % c) return a.se % c < b.se % c; return a.fi % c < b.fi % c; }); //(auto p : v) cout << p.fi << " " << p.se << endl; for(int i=0; i<v.size(); i++) { int l = i, r = i; ll vl = v[i].fi, vr = v[i].se; while(r + 1 < v.size() && v[r+1].fi <= vr) { vr = max(vr, v[r+1].se); //cout << " :: " << vl << " " << vr << endl; r++; } ans += vr - vl + 1; i = r; } } printf("%llu", ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 8 ms | 812 KB | Output is correct |
3 | Correct | 8 ms | 1068 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 1 ms | 292 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 ms | 204 KB | Output is correct |
12 | Correct | 0 ms | 204 KB | Output is correct |
13 | Correct | 0 ms | 292 KB | Output is correct |
14 | Correct | 0 ms | 204 KB | Output is correct |
15 | Correct | 0 ms | 204 KB | Output is correct |
16 | Correct | 8 ms | 940 KB | Output is correct |
17 | Correct | 90 ms | 5672 KB | Output is correct |
18 | Correct | 0 ms | 204 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 292 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
3 | Correct | 0 ms | 204 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 360 KB | Output is correct |
3 | Correct | 1 ms | 332 KB | Output is correct |
4 | Correct | 1 ms | 332 KB | Output is correct |
5 | Correct | 575 ms | 41320 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 703 ms | 16800 KB | Output is correct |
3 | Incorrect | 1079 ms | 33196 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 703 ms | 16800 KB | Output is correct |
3 | Incorrect | 1079 ms | 33196 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 703 ms | 16800 KB | Output is correct |
3 | Incorrect | 1079 ms | 33196 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 80 ms | 2560 KB | Output is correct |
3 | Incorrect | 68 ms | 2580 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 8 ms | 812 KB | Output is correct |
3 | Correct | 8 ms | 1068 KB | Output is correct |
4 | Correct | 0 ms | 204 KB | Output is correct |
5 | Correct | 0 ms | 204 KB | Output is correct |
6 | Correct | 0 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 204 KB | Output is correct |
9 | Correct | 1 ms | 292 KB | Output is correct |
10 | Correct | 0 ms | 204 KB | Output is correct |
11 | Correct | 1 ms | 204 KB | Output is correct |
12 | Correct | 0 ms | 204 KB | Output is correct |
13 | Correct | 0 ms | 292 KB | Output is correct |
14 | Correct | 0 ms | 204 KB | Output is correct |
15 | Correct | 0 ms | 204 KB | Output is correct |
16 | Correct | 8 ms | 940 KB | Output is correct |
17 | Correct | 90 ms | 5672 KB | Output is correct |
18 | Correct | 0 ms | 204 KB | Output is correct |
19 | Correct | 0 ms | 292 KB | Output is correct |
20 | Correct | 0 ms | 204 KB | Output is correct |
21 | Correct | 0 ms | 204 KB | Output is correct |
22 | Correct | 0 ms | 204 KB | Output is correct |
23 | Correct | 1 ms | 204 KB | Output is correct |
24 | Correct | 1 ms | 204 KB | Output is correct |
25 | Correct | 1 ms | 360 KB | Output is correct |
26 | Correct | 1 ms | 332 KB | Output is correct |
27 | Correct | 1 ms | 332 KB | Output is correct |
28 | Correct | 575 ms | 41320 KB | Output is correct |
29 | Correct | 0 ms | 204 KB | Output is correct |
30 | Correct | 703 ms | 16800 KB | Output is correct |
31 | Incorrect | 1079 ms | 33196 KB | Output isn't correct |
32 | Halted | 0 ms | 0 KB | - |