# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
124402 | 2019-07-03T09:32:20 Z | AyaBenSaad | 이상한 기계 (APIO19_strange_device) | C++14 | 618 ms | 32536 KB |
#include <bits/stdc++.h> #define ll long long using namespace std; const int M = 1e6 + 6; int n; ll a, b; stack <pair <ll, ll> > s; pair <ll, ll> t[M], rem[M]; bool inter (ll a, ll b) { ll x = s.top().first; ll y = s.top().second; return ((a <= y && a >= x) || (b <= y && b >= x)); } int main () { scanf ("%d %lld %lld", &n, &a, &b); for (int i = 0; i < n; i++) { scanf ("%lld %lld", &t[i].first, &t[i].second); } if (a < 3) {puts("1"); return 0;} sort (t, t+n); for (int i = 0; i < n; i++) { if (s.empty() || !inter(t[i].first, t[i].second)) { s.push ({t[i].first, t[i].second}); } else { long long x = min (t[i].first, s.top().first); long long y = max (t[i].second, s.top().second); s.pop(); s.push({x, y}); } } int k = 0; while (s.size()) { if ((s.top().second - s.top().first + 1) / a >= 1) {printf("%lld\n", a); return 0;} long long x = s.top().first%a, y = s.top().second%a; if (x <= y) {t[k] = {x, y}; k++;} else {t[k] = {x, a-1}; k++; t[k] = {0, y}; k++;} s.pop(); } sort (t, t+k); for (int i = 0; i < k; i++) { if (s.empty() || !inter(t[i].first, t[i].second)) { s.push ({t[i].first, t[i].second}); } else { long long x = min (t[i].first, s.top().first); long long y = max (t[i].second, s.top().second); s.pop(); s.push({x, y}); } } long long ans = 0; while (s.size()) { ans += s.top().second-s.top().first+1; s.pop(); } printf("%lld\n", ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 380 KB | Output is correct |
2 | Incorrect | 8 ms | 696 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 2 ms | 376 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 3 ms | 376 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 604 ms | 32372 KB | Output is correct |
3 | Incorrect | 618 ms | 32536 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 604 ms | 32372 KB | Output is correct |
3 | Incorrect | 618 ms | 32536 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 604 ms | 32372 KB | Output is correct |
3 | Incorrect | 618 ms | 32536 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 52 ms | 3584 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 380 KB | Output is correct |
2 | Incorrect | 8 ms | 696 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |