Submission #319549

#TimeUsernameProblemLanguageResultExecution timeMemory
319549tjdgus4384Boxes with souvenirs (IOI15_boxes)C++14
20 / 100
1 ms512 KiB
#include<bits/stdc++.h>
#include "boxes.h"
using namespace std;

long long delivery(int N, int K, int L, int positions[]){
    int i;
    long long ans = 0;
    for(i = 0;i + K - 1 < N;i += K){
        if(positions[i] > L/2) ans += (long long)(L-positions[i])*2;
        else if(positions[i + K - 1] <= L/2) ans += (long long)positions[i + K - 1]*2;
        else{
            for(long long j = i+1;j <= i + K - 1;j++){
                if(positions[j]-positions[j-1] > L/2){
                    ans += (long long)(L-positions[j]+positions[j-1])*2;
                    goto next;
                }
            }
            ans += (long long)L;
        }
        next:;
    }
    if(i == N) return ans;
    if(positions[i] > L/2) ans += (long long)(L-positions[i])*2;
    else if(positions[N-1] <= L/2) ans += (long long)positions[N-1] * 2;
    else{
        for(int j = i+1;j <= N - 1;j++){
            if(positions[j]-positions[j-1] > L/2){
                ans += (long long)(L-positions[j]+positions[j-1])*2;
                goto next1;
            }
        }
        ans += (long long)L;
    }
    next1:;
    return ans;
}
#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...