# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
60714 | 2018-07-24T15:06:14 Z | Eae02 | Boxes with souvenirs (IOI15_boxes) | C++14 | 2 ms | 376 KB |
#include "boxes.h" #include <bits/stdc++.h> #include <set> long long delivery(int numTeams, int capacity, int numSections, int p[]) { std::sort(p, p + numTeams); auto DistTo0 = [&] (int x) { return std::min(x, numSections - x); }; auto mid = std::lower_bound(p, p + numTeams, numSections / 2); int numL = mid - p; int numR = numTeams - numL; if (capacity == numTeams) { if (numL == 0) return DistTo0(p[0]) * 2; if (numR == 0) return DistTo0(p[numTeams - 1]) * 2; return numSections; } int doneL = 0; int doneR = 0; long long sec = 0; while ((doneL + doneR) < numTeams) { int boxes = capacity; auto Give = [&](int x, int numToGive) { if (x < numSections) numL -= numToGive; else numR -= numToGive; boxes -= numToGive; }; if (numL > numR) { sec += DistTo0(p[doneL]); while (true) { int oldPos = p[doneL]; int numToGive = 0; while (numToGive < boxes && p[doneL + numToGive] == oldPos) numToGive++; Give(oldPos, numToGive); doneL += numToGive; if (boxes <= 0 || (doneL + doneR) >= numTeams) { sec += DistTo0(oldPos); break; } sec += std::abs(p[doneL] - oldPos); } } else { sec += DistTo0(p[numTeams - doneR - 1]); while (true) { int oldPos = p[numTeams - doneR - 1]; int numToGive = 0; while (numToGive < boxes && p[numTeams - doneR - numToGive - 1] == oldPos) numToGive++; Give(oldPos, numToGive); doneR += numToGive; if (boxes <= 0 || (doneL + doneR) >= numTeams) { sec += DistTo0(oldPos); break; } sec += std::abs(p[numTeams - doneR - 1] - oldPos); } } } return sec; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 2 ms | 256 KB | Output is correct |
7 | Correct | 2 ms | 256 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 252 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Incorrect | 2 ms | 348 KB | Output isn't correct |
6 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Incorrect | 2 ms | 256 KB | Output isn't correct |
6 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 2 ms | 256 KB | Output is correct |
7 | Correct | 2 ms | 256 KB | Output is correct |
8 | Correct | 2 ms | 256 KB | Output is correct |
9 | Correct | 2 ms | 256 KB | Output is correct |
10 | Correct | 2 ms | 252 KB | Output is correct |
11 | Correct | 2 ms | 256 KB | Output is correct |
12 | Incorrect | 2 ms | 348 KB | Output isn't correct |
13 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 2 ms | 256 KB | Output is correct |
7 | Correct | 2 ms | 256 KB | Output is correct |
8 | Correct | 2 ms | 256 KB | Output is correct |
9 | Correct | 2 ms | 256 KB | Output is correct |
10 | Correct | 2 ms | 252 KB | Output is correct |
11 | Correct | 2 ms | 256 KB | Output is correct |
12 | Incorrect | 2 ms | 348 KB | Output isn't correct |
13 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 256 KB | Output is correct |
3 | Correct | 2 ms | 256 KB | Output is correct |
4 | Correct | 2 ms | 256 KB | Output is correct |
5 | Correct | 2 ms | 256 KB | Output is correct |
6 | Correct | 2 ms | 256 KB | Output is correct |
7 | Correct | 2 ms | 256 KB | Output is correct |
8 | Correct | 2 ms | 256 KB | Output is correct |
9 | Correct | 2 ms | 256 KB | Output is correct |
10 | Correct | 2 ms | 252 KB | Output is correct |
11 | Correct | 2 ms | 256 KB | Output is correct |
12 | Incorrect | 2 ms | 348 KB | Output isn't correct |
13 | Halted | 0 ms | 0 KB | - |