Submission #113687

#TimeUsernameProblemLanguageResultExecution timeMemory
113687wilwxkBoxes with souvenirs (IOI15_boxes)C++11
10 / 100
10 ms384 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=1e6+5;
int n, k, x;
int v[MAXN];
ll pre[MAXN], pos[MAXN];

long long delivery(int N, int K, int L, int p[]) {
	n=N; k=K; x=L;
	for(int i=1; i<=n; i++) v[i]=p[i-1];
	sort(v+1, v+1+n);

	for(int i=1; i<=n; i++) {
		ll volta=min(v[i], x-v[i]);
		pre[i]=volta+v[i];
		pre[i]+= i-k>=0 ? pre[i-k] : 0;
	}
	for(int i=n; i>=1; i--) {
		ll volta=min(v[i], x-v[i]);
		pos[i]=volta+(x-v[i]);
		pos[i]+= i+k<=n ? pos[i+k] : 0;
	}

	ll respf=x; respf*=n;
	for(int i=1; i<=n; i++) respf=min(respf, (ll)pre[i]+pos[i+1]);

	return respf;
}
#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...