Submission #102224

#TimeUsernameProblemLanguageResultExecution timeMemory
102224Leonardo_Paes선물상자 (IOI15_boxes)C++11
10 / 100
3 ms384 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 3e7 + 10;

typedef long long ll;

long long delivery(int N, int K, int L, int positions[MAXN]){

    long long x = N, sum=0;

    long long ini=0, fim=N-1;

    for(long long i=x; i>1; i-=K){
      //  cout << sum << endl;
        if(ini+(K-1)<=N-1 and fim-(K-1)>=0 and (2ll*(positions[ini+(K-1)]))<(2ll*(L-positions[fim-(K-1)])) and (2ll*(positions[ini+(K-1)]))<L){
            sum+=2ll*(positions[ini+(K-1)]);
            ini+=K;
        }
        else if (2ll*(L-positions[fim-(K-1)]) < L){
            sum+=2ll*(L-positions[fim-(K-1)]);
            fim-=K;
        }
        else{
            sum+=L;
            ini+=K;
        }
    }
    if(ini>N)positions[ini]=0;
    if(fim<0)fim=0, positions[fim]=0;
    sum+=min(2ll*positions[ini], 2ll*(L-positions[fim]));

    return sum;
}
#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...