Submission #1085455

#TimeUsernameProblemLanguageResultExecution timeMemory
1085455alexddBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms348 KiB
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
long long delivery(int N, int K, int L, int p[])
{
    long long rez=INF;
    int pozle=0,pozri=N-1;
    int ramase=0;
    while(p[pozle]==0)
    {
        pozle++;
        ramase++;
    }
    long long cur=0;
    for(int cnt=(N-1)/K+1;cnt>=0;cnt--)
    {
        pozle=0;
        pozri=N-1;
        cur=0;
        ramase=0;
        while(p[pozle]==0)
        {
            pozle++;
            ramase++;
        }
        while(ramase < N - cnt*K)
        {
            int d = min(K, N - cnt*K - ramase);
            if(p[pozle+d-1] <= L - p[pozri-d+1])
            {
                cur += p[pozle+d-1]*2;
                pozle += d;
            }
            else
            {
                cur += (L - p[pozri-d+1])*2;
                pozri -= d;
            }
            ramase += d;
        }
        rez = min(rez, 1LL*cnt*L + cur);
    }
    return rez;
}
/*
3 2 8
1 2 5
output: 10
*/
#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...