Submission #576104

#TimeUsernameProblemLanguageResultExecution timeMemory
576104stevancvBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
542 ms271612 KiB
#include <bits/stdc++.h> #include "boxes.h" #define ll long long #define ld long double #define sp ' ' #define en '\n' #define smin(a, b) a = min(a, b) #define smax(a, b) a = max(a, b) using namespace std; ll delivery(int N, int K, int D, int pos[]) { ll n = N; ll k = K; ll d = D; vector<ll> pref(n), suff(n); for (int i = 0; i < n; i++) { pref[i] = 2 * pos[i]; if (i >= k) pref[i] += pref[i - k]; } for (int i = n - 1; i >= 0; i--) { suff[i] = 2 * (d - pos[i]); if (i <= n - k - 1) suff[i] += suff[i + k]; } ll ans = suff[0]; for (int i = 0; i < n; i++) { ll x = pref[i]; if (i < n - 1) x += suff[i + 1]; smin(ans, x); } if (k < n) smin(ans, d + suff[k]); else smin(ans, d); for (int i = 0; i < n; i++) { ll x = pref[i] + d; if (i + k + 1 < n) x += suff[i + k + 1]; smin(ans, x); } return ans; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:17:20: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   17 |     for (int i = n - 1; i >= 0; i--) {
      |                  ~~^~~
#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...