Submission #1042129

#TimeUsernameProblemLanguageResultExecution timeMemory
1042129allin27xBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
453 ms372020 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int MAXN = 1e7+4;

int P[MAXN];
int lans[MAXN];
int rans[MAXN];

int N, K, L;

int delivery(signed n, signed k, signed l, signed p[]){
	N=n;K=k;L=l;for (int i=0; i<n; i++) P[i] = p[i];
	
	for (int i=0; i<n; i++){
		lans[i] += P[i] + min(P[i], L-P[i]);
		if (i >= k) lans[i] += lans[i-k];
	}
	for (int i=n-1; i>=0; i--){
		rans[i] += L-P[i] + min(L-P[i], P[i]);
		if (i<n-k) rans[i] += rans[i+k];
	}
	int ans = min(lans[n-1], rans[0]);
	for (int i=1; i<n; i++){
		ans = min(ans, lans[i-1] + rans[i]);
	}
	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...