Submission #434923

#TimeUsernameProblemLanguageResultExecution timeMemory
434923alextodoran선물상자 (IOI15_boxes)C++17
20 / 100
1 ms204 KiB
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> #include "boxes.h" using namespace std; typedef long long ll; ll delivery (int n, int k, int len, int pos[]) { function <int (int, int)> getDist = [&] (int u, int v) { return min(abs(u - v), len - abs(u - v)); }; int dist[n]; for(int i = 0; i < n; i++) dist[i] = getDist(0, pos[i]); int order[n]; for(int i = 0; i < n; i++) order[i] = i; sort(order, order + n, [&] (const int &u, const int &v) { return dist[u] < dist[v]; }); ll total = 0; for(int i = n - 1; i >= 0; i -= k) { int cnt = min(k, i + 1); int aux[cnt]; for(int j = 0; j < cnt; j++) aux[j] = pos[i - j]; sort(aux, aux + cnt); ll minTime = len; for(int j = 1; j < cnt; j++) minTime = min(minTime, (len - (aux[j] - aux[j - 1])) * 2LL); minTime = min(minTime, (len - aux[0]) * 2LL); minTime = min(minTime, (len - (len - aux[cnt - 1])) * 2LL); total += minTime; } return total; }
#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...