# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
196915 | 2020-01-17T16:08:19 Z | tincamatei | 이상한 기계 (APIO19_strange_device) | C++14 | 1081 ms | 100072 KB |
#include <bits/stdc++.h> using namespace std; const long long INF = 1LL << 62; long long gcd(long long a, long long b) { long long r; while(b > 0) { r = a % b; a = b; b = r; } return a; } set<pair<long long, long long> > ranges; long long insertRange(long long a, long long b) { set<pair<long long, long long> >::iterator it; it = ranges.lower_bound(make_pair(a, -INF)); if(it != ranges.begin()) { set<pair<long long, long long> >::iterator it2; it2 = it; it2--; if(it2->second >= a) { it--; a = it->first; } } long long rez = 0LL; vector<pair<long long, long long> > toErase; while(it != ranges.end() && it->first <= b) { toErase.push_back(*it); rez = rez - (it->second - it->first + 1); b = it->second; it++; } for(auto it: toErase) ranges.erase(it); ranges.insert(make_pair(a, b)); rez = rez + b - a + 1; return rez; } int main() { int n; long long A, B, loopSize, xSkip, convolutions; scanf("%d%lld%lld", &n, &A, &B); xSkip = B % A + 1; convolutions = A / gcd(A, xSkip); if(convolutions <= INF / B) loopSize = B * convolutions; else loopSize = INF; long long rez = 0LL; for(int i = 0; i < n; ++i) { long long l, r; scanf("%lld%lld", &l, &r); if(r - l + 1 >= loopSize) rez = rez + insertRange(0, loopSize - 1); else { l = l % loopSize; r = r % loopSize; if(r >= l) rez = rez + insertRange(l, r); else { rez = rez + insertRange(0, r) + insertRange(l, loopSize - 1); } } } printf("%lld\n", rez); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 376 KB | Output is correct |
2 | Incorrect | 10 ms | 1272 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 1 ms | 376 KB | Output is correct |
4 | Correct | 2 ms | 420 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 3 ms | 380 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1046 ms | 100072 KB | Output is correct |
3 | Incorrect | 1081 ms | 100052 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1046 ms | 100072 KB | Output is correct |
3 | Incorrect | 1081 ms | 100052 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 1046 ms | 100072 KB | Output is correct |
3 | Incorrect | 1081 ms | 100052 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 102 ms | 10256 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 376 KB | Output is correct |
2 | Incorrect | 10 ms | 1272 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |