Submission #587029

#TimeUsernameProblemLanguageResultExecution timeMemory
587029keta_tsimakuridzeBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
539 ms254996 KiB
#include "boxes.h" #include<bits/stdc++.h> using namespace std; #define ll long long long long delivery(int N, int K, int L, int p[]) { vector<int> a, b; a.push_back(-1); for(int i = 0; i < N; i++) { if(p[i] <= L - p[i]) a.push_back(p[i]); else b.push_back(L - p[i]); } b.push_back(-1); reverse(b.begin(), b.end()); vector<ll> dpa(a.size()), dpb(b.size()); for(int i = 1; i < a.size(); i++) { dpa[i] = (i >= K ? dpa[i - K] + a[i] * 2 : a[i] * 2); } for(int i = 1; i < b.size(); i++) { dpb[i] = (i >= K ? dpb[i - K] + b[i] * 2 : b[i] * 2); } ll ans = dpa[(int)a.size() - 1] + dpb[(int)b.size() - 1]; for(int i = 0; i < a.size(); i++) { if((int)a.size() - i - 1 > K) continue; int lft = K - ((int)a.size() - i - 1); int id = max(0, (int)b.size() - 1 - lft); ans = min(ans, dpa[i] + dpb[id] + L); } return ans; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:15:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i = 1; i < a.size();  i++) {
      |                    ~~^~~~~~~~~~
boxes.cpp:18:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |     for(int i = 1; i < b.size(); i++) {
      |                    ~~^~~~~~~~~~
boxes.cpp:22:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for(int i = 0; i < a.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...