Submission #154113

#TimeUsernameProblemLanguageResultExecution timeMemory
154113dennisstarBoxes with souvenirs (IOI15_boxes)C++11
0 / 100
2 ms504 KiB
#include "boxes.h" #include <bits/stdc++.h> #define f(x) min(L-p[x],p[x]) using namespace std; typedef long long ll; ll s1[10000010], s2[10000010]; long long delivery(int N, int K, int L, int p[]) { int i, j; K=min(N,K); for (i=1; i<=min(K,N-1); i++) { for (j=i; j<N; j+=K) s1[i]+=(ll)(p[j]+f(j))*2ll; } for (i=N-2; i>=max(0,N-K-1); i--) { for (j=i; j>=0; j-=K) s2[i]+=(ll)(L-p[j]+f(j))*2ll; } ll ans=(1ll<<62), s; for (i=0; i<K; i++) { s=s2[(i+1)%K]+p[i]+f(i); ans=min(s, ans); for (j=i+K; i<N; i+=K) { s+=(ll)(p[j]+f(j)); s-=(ll)(N-p[j-K+1]+f(j-K+1)); ans=min(s,ans); } } for (i=N-1; i>=N-K; i--) { s=s1[(i+K-1)%K]+(N-p[i]+f(i)); ans=min(s, ans); for (j=i-K; j>=0; j-=K) { s+=(ll)(N-p[j]+f(j)); s-=(ll)(p[j+K-1]+f(j+K-1)); ans=min(s,ans); } } 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...