제출 #1137522

#제출 시각아이디문제언어결과실행 시간메모리
1137522viwlesxqBoxes with souvenirs (IOI15_boxes)C++20
20 / 100
1 ms328 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; long long delivery(int n, int k, int l, int p[]) { auto dist = [&](int x, int y) { if (x > y) swap(x, y); return min(y - x, x + (l - y) % l); }; long long res = 0; deque<int> q; for (int i = 0; i < n; ++i) { q.push_back(p[i]); } int pos = 0; while (!q.empty()) { int f, c = k; if (dist(pos, q.front()) < dist(pos, q.back())) f = 1; else f = 0; while (!q.empty() && c--) { int distf = dist(pos, q.front()), distb = dist(pos, q.back()); if (f) { if (distf < distb) { res += distf; pos = q.front(); q.pop_front(); } else if (distf == distb) { res += distb; pos = q.back(); q.pop_back(); f = 0, c = k - 1; } else { break; } } else { if (distf > distb) { res += dist(pos, q.back()); pos = q.back(); q.pop_back(); } else if (distf == distb) { res += distf; pos = q.front(); q.pop_front(); f = 1, c = k - 1; } else { break; } } } res += dist(pos, 0); pos = 0; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...