Submission #813246

#TimeUsernameProblemLanguageResultExecution timeMemory
813246OrazBBoxes with souvenirs (IOI15_boxes)C++14
10 / 100
1 ms212 KiB
#include <bits/stdc++.h> // #include "boxes.h" using namespace std; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second // const int N = 1e5+5; ll delivery(int n, int K, int L, int p[]){ // if (p[0] >= L-p[0] or L-p[n-1] >= p[n-1]){ // ll sum = 0; // for (int i = 0; i < n; i++){ // if ((i+1)%K == 0){ // sum += min({L, p[i]*2, (L-p[i])*2}); // } // } // if (n%K){ // sum += min({L, p[n-1]*2, (L-p[n-1])*2}); // } // return sum; // } ll sum = 0; int l = -1, r = n; for (int i = 0; i < n; i++){ if ((i+1)%K == 0 and p[i] <= L-p[i]){ sum += p[i]*2; l = i; } } for (int i = n-1; i >= 0; i--){ if ((n-i)%K == 0 and L-p[i] < p[i]){ sum += (L-p[i])*2; r = i; } } if (l == n-1 or !r) return sum; const ll inf = 1e18; ll mn = 1e18; if ((r-l-1) <= K){ mn = min(mn, sum+min({(L-p[l+1])*2, p[r-1]*2, L})); } int x = l+1, y = r-1; for (int i = l+1; i < r; i++){ if (p[i] <= L-p[i]) x = i; } for (int i = r-1; i > l; i--){ if (L-p[i] < p[i]) y = i; } return min(mn, sum+min(L, p[x]*2)+min(L, (L-p[y])*2)); } // int main () // { // ios::sync_with_stdio(false); // cin.tie(0); // int n, k, l; // cin >> n >> k >> l; // int p[n]; // for (int i = 0; i < n; i++) cin >> p[i]; // cout << delivery(n, k, l, p); // }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:42:11: warning: unused variable 'inf' [-Wunused-variable]
   42 |  const ll inf = 1e18;
      |           ^~~
#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...