Submission #1191651

#TimeUsernameProblemLanguageResultExecution timeMemory
1191651gelovBoxes with souvenirs (IOI15_boxes)C++20
Compilation error
0 ms0 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; using ll = long long int; ll numCheckpoints, stepSize, trackLength; vector<ll> forwardDistances, backwardDistances; vector<ll> memoForward, memoBackward; ll computeForwardTime(ll idx) { if (idx < 0) return 0; if (memoForward[idx] != -1) return memoForward[idx]; return memoForward[idx] = 2LL * forwardDistances[idx] + computeForwardTime(idx - stepSize); } ll computeBackwardTime(ll idx) { if (idx < 0) return 0; if (memoBackward[idx] != -1) return memoBackward[idx]; return memoBackward[idx] = 2LL * backwardDistances[idx] + computeBackwardTime(idx - stepSize); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> numCheckpoints >> stepSize >> trackLength; for (ll i = 0; i < numCheckpoints; i++) { ll pos; cin >> pos; if (pos == 0 || pos == trackLength) continue; if (2 * pos > trackLength) backwardDistances.push_back(trackLength - pos); else forwardDistances.push_back(pos); } sort(forwardDistances.begin(), forwardDistances.end()); sort(backwardDistances.begin(), backwardDistances.end()); memoForward.assign(forwardDistances.size(), -1); memoBackward.assign(backwardDistances.size(), -1); ll fCount = forwardDistances.size(); ll bCount = backwardDistances.size(); ll result = computeForwardTime(fCount - 1) + computeBackwardTime(bCount - 1); for (ll i = 0; i <= stepSize; ++i) { ll skipF = fCount - 1 - i; ll skipB = bCount - 1 - (stepSize - i); ll timeF = computeForwardTime(skipF); ll timeB = computeBackwardTime(skipB); result = min(result, timeF + timeB + trackLength); } cout << result << "\n"; }

Compilation message (stderr)

/usr/bin/ld: /tmp/cclyQvPr.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/cc2Ttipg.o:boxes.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cclyQvPr.o: in function `main':
grader.c:(.text.startup+0x1ec): undefined reference to `delivery(int, int, int, int*)'
collect2: error: ld returned 1 exit status