Submission #996349

#TimeUsernameProblemLanguageResultExecution timeMemory
996349AlfraganusBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
7 ms452 KiB
#include <bits/stdc++.h> #include "boxes.h" using namespace std; #define ll long long ll delivery(int n, int k, int l, int p[]) { ll ans = 1e18; auto get = [&](ll x){return min(x, l - x);}; vector<int> q; for(int i = 0; i < n; i ++) if(p[i] != 0) q.push_back(p[i]); n = (int)q.size(); for(int i = 0; i <= n; i ++){ deque<int> dq; for(int j = 0; j < i; j ++) dq.push_back(q[j]); // for(auto x : dq) // cout << x << ' '; // cout << endl; ll mx = 0; while(dq.size() > 0){ int sz = (int)dq.size(); ll clock = dq[min(sz - 1, k - 1)] + get(dq[min(sz - 1, k - 1)]); mx += clock; for(int j = 0; j < min(sz, k); j ++) dq.pop_front(); } for(int j = i; j < n; j ++) dq.push_back(q[j]); // for(auto x : dq) // cout << x << ' '; // cout << endl; while(dq.size() > 0){ int sz = (int)dq.size(); ll counterclock = l - dq[max(0, sz - k)] + get(dq[max(0, sz - k)]); mx += counterclock; for(int j = 0; j < min(sz, k); j ++) dq.pop_back(); } // cout << i << ' ' << mx << endl; ans = min(ans, mx); } return ans; }
#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...