Submission #431927

#TimeUsernameProblemLanguageResultExecution timeMemory
431927c4ts0upBoxes with souvenirs (IOI15_boxes)C++17
0 / 100
1 ms332 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define ff first #define ss second const ll INF = 1e18; ll n, k, l; vector <ll> arr; // [] ll CalcIzq(ll x) { ll cnt = 0LL, i=1; for (i=1; k*i-1 < x; i++) { cnt += arr[i]; // cual es la manera más corta de volver cnt += min(arr[i], l-arr[i]); } cnt += arr[min(k*i-1, x)]; //////////////////// PUEDE TENER UN ERROR // cual es la manera más corta de volver cnt += min(arr[min(k*i-1, x)], l - arr[min(k*i-1, x)]); return cnt; } // [] ll CalcDer(ll x) { ll cnt = 0LL, i=1; for (i=1; l-k*i > x; i++) { cnt += l-arr[l-k*i]; // cual es la manera más corta de volver cnt += min(l-arr[l-k*i], arr[l-k*i]); } cnt += l-arr[max(l-k*i, x)]; ///////////////////////// PUEDE TENER UN ERROR // cual es la manaer más corta de volver cnt += min(l-arr[max(l-k*i, x)], arr[max(l-k*i, x)]); return cnt; } ll delivery(int N, int K, int L, int p[]) { // Cambia la entrada n = (ll)N; k = (ll)K; l = (ll)L; arr.resize(n); for (int i=0; i<n; i++) arr[i] = (ll)p[i]; ll cnt = INF; for (ll i=-1; i<n; i++) { cnt = min(cnt, (i<0 ? 0LL : CalcIzq(i)) + (i==n-1 ? 0LL : CalcDer(i+1))); } return cnt; }
#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...