Submission #1261024

#TimeUsernameProblemLanguageResultExecution timeMemory
1261024JuanJLBoxes with souvenirs (IOI15_boxes)C++20
100 / 100
343 ms196108 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);
	
	ll j = N-1;	
	forn(i,0,N){
		izq[i]=min((ll)p[i]*2, (ll)p[i]+(L-p[i])) + (i-K>=0?izq[i-K]:0);
		der[j]=min((ll)(L-p[j])*2, (ll)(L-p[j])+p[j]) + (j+K<N?der[j+K]:0);
		j--;
	}
	
	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...