Submission #1193604

#TimeUsernameProblemLanguageResultExecution timeMemory
1193604ElayV13Boxes with souvenirs (IOI15_boxes)C++20
0 / 100
3 ms328 KiB
#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;

const long long INF = 1e18;
const int N = 1005;

long long dp[N];

long long cost(int N , int f , int l){
        return 2 * min(N - f , l);
}

long long delivery(int n , int k , int l , int p[])
{
        long long res = INF;
        for(int bit = 0;bit < (1 << n);bit++)
        {
                vector < vector < int > > A;
                vector < int > cur;
                for(int i = 0;i < n;i++)
                {
                        cur.push_back(p[i]);
                        if((1 << i) & bit){
                                A.push_back(cur);
                                cur.clear();
                        }
                }
                if(cur.size() > 0) A.push_back(cur);
                bool can = 1;
                for(vector < int > v : A) if(v.size() > k) can = 0;
                if(!can) continue;
                long long costt = 0;
                for(vector < int > v : A){
                        int first = v[0];
                        int last = v[v.size() - 1];
                        costt = costt + cost(l , first , last);
                }
                res = min(res , costt);
        }
        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...