Submission #422279

#TimeUsernameProblemLanguageResultExecution timeMemory
422279jlallas384Boxes with souvenirs (IOI15_boxes)C++17
35 / 100
1 ms204 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
using ll = long long;


ll delivery(int n, int k, int l, int pi[]) {
    vector<int> p(n);
    for(int i = 0; i < n; i++){
        p[i] = pi[i];
    }
    ll fin = 1e18;
    for(int it = 0; it < 2; it++){
        ll ans = 0;
        int rev = 0,cur = 0,lft = k;
        for(int x: p){
            if(lft == 0){
                ans += min(cur,l - cur);
                lft = k;
                cur = 0;
            }
            if(!rev && cur != 0 && cur + l - x <= x - cur){
                rev = 1;
                ans += cur;
                cur = 0;
                lft = k;
            }
            lft--;
            ans += min(x - cur, cur + l - x);
            cur = x;
            if(cur == 0) lft = k;
        }
        fin = min(fin,ans + min(l - cur,cur));
        for(int &x: p){
            x = (l - x) % l;
        }
        sort(p.begin(), p.end());
    }
    return fin;
}
#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...