Submission #238694

#TimeUsernameProblemLanguageResultExecution timeMemory
238694nicolaalexandraBoxes with souvenirs (IOI15_boxes)C++14
20 / 100
5 ms384 KiB
#include <bits/stdc++.h> #include "boxes.h" #define DIM 10000010 using namespace std; long long dist_left[DIM],dist_right[DIM]; long long delivery (int n, int k, int l, int v[]){ int i, j, poz, poz2; long long sol = 0; for (i=0;i<n;i++){ dist_left[i] = v[i]; dist_right[i] = l - v[i]; } for (i=0;i+k-1<n && dist_left[i+k-1] <= l/2;i+=k) sol += 2*dist_left[i+k-1]; for (j=n-1;j-k+1>=i && dist_right[j-k+1] <= l/2;j-=k) sol += 2*dist_right[j-k+1]; if (i > j) return sol; if (j-i+1 <= k){ long long val = min (1LL*l,min(2*dist_left[j],2*dist_right[i])); for (poz=i;dist_left[poz]<=l/2;poz++); for (poz2=j;poz2>=poz;poz2--); long long nr = 0; if (poz > i) nr += 2*dist_left[poz-1]; if (poz2 < j) nr += 2*dist_right[poz2+1]; val = min (val,nr); return sol + val; } sol += l; long long nr = j-i+1 - k; sol += min (dist_left[i+nr-1],dist_right[j-nr+1]) * 2; return sol; }
#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...