Submission #74711

#TimeUsernameProblemLanguageResultExecution timeMemory
74711dooweyBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
543 ms170968 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<ll> bef, aft; ll delivery(int N, int K, int L, int p[]) { for(int i = 0; i < N; i ++ ){ if(p[i] <= L/2) bef.push_back(p[i] * 2); else aft.push_back((L-p[i])*2); } reverse(aft.begin(), aft.end()); for(int i = K; i < bef.size(); i ++ ) bef[i] += bef[i-K]; for(int i = K; i < aft.size(); i ++ ) aft[i] += aft[i - K]; int tr; ll ans = (ll)1e18; ll sum; for(int tl = 1; tl <= K; tl ++ ){ tr = K-tl; sum = L; if(tl < (int)bef.size()) sum += bef[bef.size()-tl-1]; if(tr < (int)aft.size()) sum += aft[aft.size()-tr-1]; ans = min(ans, sum); } sum = 0; if(!bef.empty()) sum += bef.back(); if(!aft.empty()) sum += aft.back(); ans = min(ans, sum); return ans; }

Compilation message (stderr)

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:18:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < bef.size(); i ++ )
                 ~~^~~~~~~~~~~~
boxes.cpp:20:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < aft.size(); 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...