Submission #341030

#TimeUsernameProblemLanguageResultExecution timeMemory
34103012tqianBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms384 KiB
#include "boxes.h" #include <bits/stdc++.h> typedef long long ll; const ll INF = 2e9; long long delivery(int N, int K, int L, int p[]) { using namespace std; vector<ll> pre(N); for (int i = 0; i < N ; i++) pre[i] = (i?pre[i-1]:0) + p[i]; auto get = [&](int l, int r) -> ll { return pre[r] - (l?pre[l-1]:0); }; auto range = [&](int l, int r) -> int { ll res = INF; int mx = -INF; int mn = INF; for (int i = l; i <= r; i++) { mx = max(mx, p[i]); mn = min(mn, p[i]); } res = min(res, 2LL * mx); res = min(res, 2LL * (L - mn)); res = min(res, (ll) L); return res; }; ll ans = 1e18; auto solve = [&]() { ll res = 0; for (int l = 0; l < N; l += K) { int r = l+K-1; r = min(r, N-1); res += range(l, r); } ans = min(ans, res); }; solve(); reverse(p, p+N); solve(); return ans; }

Compilation message (stderr)

boxes.cpp: In lambda function:
boxes.cpp:24:16: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   24 |         return res;
      |                ^~~
boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:10:10: warning: variable 'get' set but not used [-Wunused-but-set-variable]
   10 |     auto get = [&](int l, int r) -> ll {
      |          ^~~
#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...