제출 #1198710

#제출 시각아이디문제언어결과실행 시간메모리
1198710Gr1senBoxes with souvenirs (IOI15_boxes)C++20
0 / 100
2 ms324 KiB
#include "boxes.h" #include<algorithm> #include<iomanip> #include<vector> #include<set> #include<iterator> #include<iostream> using namespace std; #define ll long long #define vi vector<ll> #define vvi vector<vi> #define ms multiset<int> int n, k, l; vi P; ll delivery(int in, int ik, int il, int L[]) { n = in; k = ik; l = il; int p = 0; P = vi(n); while (L[p] <= l/2) { if (p < k) { P[p] = L[p]*2; p++; continue; } P[p] = (L[p])*2 + P[p-k]; p++; } p = n-1; while (L[p] > l/2) { if (p > n-k-1) { P[p] = (l-L[p])*2; p--; continue; } P[p] = (l - L[p])*2 + P[p+k]; p--; } p++; cerr << "P : {"; for (auto i : P) cerr << i << ", "; cerr << "}\n"; if (p == 0) return P[p]; ll ans = P[p] + P[p-1]; for (int i = p-k-1; i < p; i++) { if (i < 0) continue; if (i+2+k >= P.size()) break; ans = min(ans, P[i] + P[i+k+2] + 2*l); } 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...