This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/* [Author : Hoang Duy Vu] - THPT Chuyen Nguyen Du */
//#pragma GCC optimize(" unroll-loops")
//#pragma gcc optimize("Ofast")
//#pragma GCC optimization("Ofast")
//#pragma optimize(Ofast)
#include "boxes.h"
#include <bits/stdc++.h>
#define All(x) (x).begin(),(x).end()
#define ll long long
#define C make_pair
#define fi first
#define se second
#define two second.first
#define thr second.second
#define TASK "txt"
using namespace std;
template<typename T> bool maximize(T &res, const T &val) {
if (res < val) { res = val; return true; } return false; }
template<typename T> bool minimize(T &res, const T &val) {
if (res > val) { res = val; return true; } return false; }
typedef pair<int,int> ii;
typedef pair<int,ii> iii;
const int LOG = 20;
const int INF = 1e9 + 7;
const ll LNF = 1e18 + 7;
const int mod = 1e9 + 7;
const int N = 1e7 + 100;
ll delivery(int n , int k , int l , int p[])
{
vector <ll> pre , suff;
pre.assign(n,LNF);
suff.assign(n,LNF);
for (int i = 0 , j = n - 1 ; i < n ; i++,j--)
if (i < k)
{
pre[i] = 1ll*min(p[0],l - p[0]) + min(p[i],l - p[i]) + 1ll*p[i] - p[0];
suff[j] = 1ll*min(p[n - 1],l - p[n - 1]) + 1ll*min(p[j],l - p[j]) + 1ll*p[n - 1] - p[j];
}
else
{
pre[i] = pre[i - k] + min(p[i - k + 1],l - p[i - k + 1]) + min(p[i],l - p[i]) + p[i] - p[i - k + 1];
suff[j] = suff[j + k] + min(p[j + k - 1],l - p[j + k - 1]) + min(p[j],l - p[j]) + p[j + k - 1] - p[j];
}
ll res = pre[n - 1];
minimize(res,suff[0]);
for (int i = 1 ; i < n ; i++) minimize(res,pre[i - 1] + suff[i]);
return res;
}
// int main()
// {
// ios_base::sync_with_stdio(0);
// cin.tie(NULL); cout.tie(NULL);
// if(fopen(TASK".inp", "r")){
// freopen(TASK".inp","r",stdin);
// freopen(TASK".out","w",stdout);
// }
// int n , k , l;
// cin >> n >> k >> l;
// vector <int> x;
// x.assign(n,0);
// for (int &v : x) cin >> v;
// cout << delivery(n,k,l,x);
// return 0;
// }
# | 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... |