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...