제출 #937636

#제출 시각아이디문제언어결과실행 시간메모리
937636danikoynov선물상자 (IOI15_boxes)C++14
25 / 100
5 ms2464 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll inf = 1e18; const int maxn = 1e7 + 10; int n, k; ll p[maxn], temp[maxn]; ll L; ll get_price_left(int x) { ll res = 0; int t = 0; for (int i = x - 1; i >= 0; i --) { t ++; if (t % k == 1) { //cout << t << endl; res = res + 2 * p[i]; } } return res; } ll get_price_right(int x) { ll res = 0; int t = 0; for (int i = n - x; i < n; i ++) { t ++; if (t % k == 1) { ///cout << t << endl; res = res + 2 * (L - p[i]); } } return res; } long long delivery(int N, int K, int _L, int P[]) { for (int i = 0; i < N; i ++) p[i] = P[i]; n = N; k = K; L = _L; //cout << get_price_right(1) << endl; ///exit(0); ll res = inf; for (int i = 0; i <= N; i ++) { ll val = get_price_left(i) + get_price_right(N - i); ///cout << "split " << i << " " << val << endl; res = min(res, val); if (N - i - k >= 0) { //cout << "in" << endl; val = get_price_left(i) + get_price_right(N - i - k) + L; //cout << "here " << i << " " << N - i - k << " " << val << endl; res = min(res, val); } } return res; }
#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...