Submission #1015615

#TimeUsernameProblemLanguageResultExecution timeMemory
1015615MuhammetBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms480 KiB
#include <bits/stdc++.h> #include "boxes.h" #define N 10005 #define ll long long using namespace std; ll p[N], s[N]; ll delivery(int n, int k1, int l1, int a[]) { sort(a,a+n); ll x = l1, k = k1; for(int i = 0; i < n; i++){ p[i+1] = a[i] + p[max(i-k+1,0ll)]; } for(int i = n-1; i >= 0; i--){ s[i+1] = (x-a[i]) + s[min(i+k+1,(ll)(n+1))]; } ll ans = LLONG_MAX; int ind = 0; for(int i = 0; i <= n; i++){ if(2*(p[i] + s[i+1]) < ans) ind = i; ans = min(ans,2*(p[i] + s[i+1])); } int l = ind, r = ind+1; ll y = ans, cnt = 0; while(l > 0 or r < n+1){ if((l == 0) or (s[r]-s[r+1] > p[l]-p[l-1])){ y -= 2*(s[r]-s[r+1]); r++; } else { y -= 2*(p[l]-p[l-1]); l--; } cnt++; ll z = cnt; z += (k-1); z /= k; z *= x; ans = min(ans, y + z); } 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...