This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |