Submission #1193559

#TimeUsernameProblemLanguageResultExecution timeMemory
1193559ElayV13Boxes with souvenirs (IOI15_boxes)C++20
10 / 100
7 ms400 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 res = INF;
        for(int bit = 0;bit < (1 << (n - 1));++bit)
        {
                map < bool , int > r;
                for(int i = 0;i < n - 1;i++)
                {
                        if((1 << i) & bit) r[i] = 1;
                }
                vector < int > cur;
                vector < vector < int > > A;
                for(int i = 0;i < n;i++)
                {
                        if(r[i - 1] == 1)
                        {
                                A.push_back(cur);
                                cur.clear();
                                cur.push_back(p[i]);
                        }
                        else cur.push_back(p[i]);
                }
                if(cur.size()) A.push_back(cur);
                bool can = 1;
                for(vector < int > v : A) if((int)v.size() > k) can = 0;
                if(!can) continue;
                long long cost = 0;
                for(vector < int > v : A){
                        if(!v.size()) continue;
                        int first = v[0];
                        int last = v[v.size() - 1];
                        cost = cost +  (min(l - first , last) * 2);
                }
                res = min(res , cost);
        }
        return res;
}
/*
signed main()
{
        int n , k , l;
        cin >> n >> k >> l;
        int p[n];
        for(int i = 0;i < n;i++) cin >> p[i];
        cout << delivery(n , k , l , p) << endl;
}
*/
#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...