# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
196915 | tincamatei | Strange Device (APIO19_strange_device) | C++14 | 1081 ms | 100072 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |