Submission #1332613

#TimeUsernameProblemLanguageResultExecution timeMemory
1332613GabrielBoxes with souvenirs (IOI15_boxes)C++20
20 / 100
1 ms344 KiB
#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;
long long delivery(int n, int k, int L, int P[]){
    long long r = LLONG_MAX, _ltimoi = 0, _ltimod = 0, l = L;
    vector<long long> p;
    for(int i = 0; i < n; i++) if(P[i] != 0) p.push_back(P[i]);
    n = p.size();
    if(n == 0) return 0;
    vector<long long> Izquierda(n), Derecha(n);
    for(int i = 0; i < n; i++){
        Izquierda[i] = p[i] + min(p[i], l - p[i]) + _ltimoi;
        Derecha[n - i - 1] = l - p[n - i - 1] + min(p[n - i - 1], l - p[n - i - 1]) + _ltimod;
        if((i + 1) % k == 0){
            _ltimoi = Izquierda[i];
            _ltimod = Derecha[n - i - 1];
        }
    }
    Derecha.push_back(0);
    for(int i = 0; i < n; i++){
        r = min(r, Izquierda[i] + Derecha[i + 1]);
        //cerr<<Izquierda[i]<<" "<<Derecha[i + 1]<<"\n";
    }
    //cerr<<"0 "<<Derecha[0]<<"\n";
    r = min(r, Derecha[0]);
    //cerr<<r;
    return r;
}
#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...