Submission #1015648

#TimeUsernameProblemLanguageResultExecution timeMemory
1015648MuhammetBoxes with souvenirs (IOI15_boxes)C++17
20 / 100
1 ms416 KiB
#include <bits/stdc++.h> #include "boxes.h" #define N 10005 #define ll long long #define ff first #define ss second using namespace std; ll p[N], s[N]; ll delivery(int n, int k1, int l1, int a[]) { sort(a,a+n); ll x = l1, k = k1; for(int i = 0; i < n; i++){ p[i+1] = a[i] + p[max(i-k+1,0ll)]; } for(int i = n-1; i >= 0; i--){ s[i+1] = (x-a[i]) + s[min(i+k+1,(ll)(n+1))]; } ll ans = LLONG_MAX; int ind = x/2; vector <pair<ll,ll>> v; for(int i = 0; i <= n; i++){ ans = min(ans,2*(p[i] + s[i+1])); v.push_back({abs(ind-a[i]),i+1}); } sort(v.begin(), v.end()); ll l = n+1, r = 0; for(auto i : v){ l = min(l,i.ss-1); r = max(r,i.ss+1); ans = min(ans,2*(p[l] + s[r]) + ((r-l-2+k)/k)*x); } return ans; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:23:13: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   23 |  int ind = x/2;
      |            ~^~
#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...