Submission #595416

#TimeUsernameProblemLanguageResultExecution timeMemory
595416ApiramBoxes with souvenirs (IOI15_boxes)C++14
20 / 100
1 ms312 KiB
#include "boxes.h" #include<bits/stdc++.h> using namespace std; long long delivery(int N, int K, int L, int p[]) { if (K == 1){ long long ans = 0; for (int i = 0;i<N;++i){ ans +=min(p[i],L - p[i]) * 2; } return ans; } else if (K == N){ long long ans = min({L,(L - p[0]) * 2,p[N - 1] * 2}); for (int i = 0;i<N - 1;++i){ ans = min(ans,(long long)p[i] * 2 + (L - p[i + 1]) * 2); } return ans; } /*map<int,int>clock_nxt,anti_nxt,cnts; sort(p,p + N); map<int,set<int,int>>remain; int cur = 0; for (int i = 0;i<n;++i){ clock_nxt[cur] = p[i]; cnts[p[i]]++; cur = p[i]; } clock_nxt[cur] = 0; cur = 0; for (int i = n - 1;i>=0;--i){ anti_nxt[cur] = p[i]; cur = p[i]; } anti_nxt[cur] = 0; int ans = 0; while(true){ int temp1 = clock_nxt[0]; int temp2 = anti_nxt[0]; if (temp1 < temp2){ int times = (cnt[temp1] + K - 1) / K; cnt[temp1]%=K; remain[clock_nxt[temp1]].push_back({}); ans+=times * (temp1); clock_nxt[0] = clock[clock_nxt[0]]; } else{ int times = cnt[temp2] / K; cnt[temp2]%=K; ans+=times * temp2; } } */ return 0; }
#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...