# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
57950 | E869120 | Boxes with souvenirs (IOI15_boxes) | C++14 | 2 ms | 380 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int v[10000009], NN, KK, LL; bool used[10000009];
long long dist(int L, int R, int ty) {
while (L >= NN) { L -= NN; R -= NN; }
long long V1 = v[L % NN], V2 = v[R % NN];
long long ret = min(V2, LL - V1);
if (L < NN && R >= NN) ret = (LL - V1) + V2;
if (ty == 1 && ((NN - L) > KK || R > KK + NN || !(L < NN && R >= NN))) return (1LL << 60);
ret *= 2;
return min(1LL * LL, ret);
}
int c[10000009];
long long delivery(int N, int K, int L, int pos[]) {
NN = N; KK = K; LL = L;
for (int i = 0; i < N; i++) v[i] = pos[i];
for (int i = 0; i < N; i++) c[i] = dist(i, i + K - 1, 0);
long long minx = (1LL << 60);
for (int i = 0; i < N; i++) {
if (used[i] == true) continue;
long long cx = i, sum = 0;
while (cx + K < i + N) { sum += c[cx % N]; cx += K; }
long long ex = i;
while (used[ex % N] == false) {
used[ex % N] = true;
minx = min(minx, sum + dist(cx, ex + N - 1, 0));
//cout << ex << " " << sum + dist(cx, ex + N - 1, 0) << endl;
sum -= c[ex % N]; ex += K; sum += c[cx%N]; cx += K;
}
}
if (K * 2 < N) {
for (int i = 0; i < N; i++) used[i] = false;
for (int i = 0; i < N; i++) {
if (used[i] == true) continue;
long long cx = i, sum = 0;
while (cx + K * 2 < i + N) { sum += c[cx % N]; cx += K; }
long long ex = i;
while (used[ex % N] == false) {
used[ex % N] = true;
minx = min(minx, sum + dist(cx, ex + N - 1, 1));
//cout << ex % N << " " << cx % N << " " << sum + dist(cx, ex + N - 1, 1) << endl;
sum -= c[ex % N]; ex += K; sum += c[cx%N]; cx += K;
}
}
}
return minx;
}
컴파일 시 표준 에러 (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... |