Submission #1085471

#TimeUsernameProblemLanguageResultExecution timeMemory
1085471alexddBoxes with souvenirs (IOI15_boxes)C++17
50 / 100
2071 ms33652 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; const long long INF = 1e18; long long dple[10000005],dpri[10000005]; vector<int> a; long long delivery(int N, int K, int L, int p[]) { a.push_back(0); for(int i=0;i<N;i++) if(p[i]!=0) a.push_back(p[i]); N = (int)a.size()-1; a.push_back(L); K = min(K, N); if(N==0) { return 0; } for(int r=0;r<K;r++) { dple[r] = a[r]*2; for(int i=r+K;i<=N;i+=K) dple[i] = dple[i-K] + a[i]*2; } for(int r=0;r<K;r++) { dpri[r] = (L-a[N-r+1])*2; for(int i=r+K;i<=N;i+=K) dpri[i] = dpri[i-K] + (L-a[N-i+1])*2; } long long rez=INF; for(int cntri=0;cntri<=N;cntri++) { for(int cntc=0;cntri+cntc*K<=N;cntc++) { int cntle = N - cntri - cntc*K; rez = min(rez, dple[cntle] + dpri[cntri] + 1LL*L*cntc); } } return rez; } /* 3 2 8 1 2 5 output: 10 */
#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...