Submission #1261013

#TimeUsernameProblemLanguageResultExecution timeMemory
1261013JuanJLBoxes with souvenirs (IOI15_boxes)C++20
100 / 100
348 ms196288 KiB
#include "boxes.h"
#include <bits/stdc++.h>

#define fst first
#define snd second
#define pb push_back
#define forn(i,a,b) for(int i = a; i< b;i++)
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define mset(a,v) memset(a,v,sizeof(a))
#define FIN ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
typedef long long ll;


long long delivery(int N, int K, int L, int p[]) {
	
	vector<ll> izq(N,0);
	vector<ll> der(N,0);
	
	forn(i,0,N){
		izq[i]=min(p[i]*2ll, (ll)p[i]+(L-p[i]));
		if(i-K>=0){
			izq[i]+=izq[i-K];
		}
	}
	
	for(int i = N-1; i>=0; i--){
		der[i]=min((L-p[i])*2ll, (ll)(L-p[i])+p[i]);
		if(i+K<N){
			der[i]+=der[i+K];
		}
	}
	
	ll res = min(izq[N-1],der[0]);
	forn(i,0,N){
		if(i+1<N) res=min(res, izq[i]+der[i+1]);
	}
	
	return res;
}
#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...