제출 #314143

#제출 시각아이디문제언어결과실행 시간메모리
314143joseacaz선물상자 (IOI15_boxes)C++17
10 / 100
1 ms416 KiB
#include "boxes.h" #include <bits/stdc++.h> #define MAXN 1000006 #define INF (1LL << 62LL) using namespace std; typedef long long ll; int N, K, L; ll DP[MAXN], pre[MAXN]; vector < int > P; ll cost ( int i, int j ) { return min ( (ll)L, 2 * min ( pre[j], pre[N + 1] - pre[i] ) ); } ll delivery ( int _n, int _k, int _l, int _p[] ) { swap ( N, _n ); swap ( K, _k ); swap ( L, _l ); P.push_back ( 0 ); for ( int i = 0; i < N; i++ ) P.push_back ( _p[i] ); P.push_back ( L ); for ( int i = 1; i <= N + 1; i++ ) pre[i] = pre[i - 1] + (P[i] - P[i - 1]); for ( int i = N; i >= 1; i-- ) { DP[i] = INF; for ( int k = 0; k <= K; k += K ) if ( i + k <= N + 1 ) DP[i] = min ( DP[i], cost ( i, i + k - 1 ) + DP[i + k] ); } /*for ( int i = 1; i <= N; i++ ) cout << DP[i] << " "; cout << "\n";*/ return DP[1]; }
#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...