Submission #1061161

#TimeUsernameProblemLanguageResultExecution timeMemory
1061161codefoxBoxes with souvenirs (IOI15_boxes)C++14
20 / 100
1 ms600 KiB
#include<bits/stdc++.h> #include "boxes.h" using namespace std; #define ll long long ll delivery(int N,int K,int L,int positions[]) { deque<ll> first; deque<ll> second; for (int i = 0;i < N; i++) { if (positions[i]==0) continue; if (positions[i]<=L/2) first.push_back(positions[i]); else second.push_front(positions[i]); } ll sol = 0; while (first.size() >= K) { int t = K; sol += first[K-1]*2; while (t--) first.pop_front(); } while (second.size() >= K) { int t = K; sol += (L-second[K-1])*2; while (t--) second.pop_front(); } if (first.size()==0 && second.size()==0) return sol; if (first.size() == 0) return sol+(L-second.back())*2; if (second.size()==0) return sol+first.back()*2; ll mn = 1e18; if (first.size()+second.size()<=K) mn = L; else { mn = min(mn, L+2*first[first.size()+second.size()-K]); mn = min(mn, L+2*second[first.size()+second.size()-K]); } mn = min(mn, 2*(first.back()+L-second.back())); return sol+mn; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:19:25: warning: comparison of integer expressions of different signedness: 'std::deque<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   19 |     while (first.size() >= K)
      |            ~~~~~~~~~~~~~^~~~
boxes.cpp:25:26: warning: comparison of integer expressions of different signedness: 'std::deque<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   25 |     while (second.size() >= K)
      |            ~~~~~~~~~~~~~~^~~~
boxes.cpp:35:35: warning: comparison of integer expressions of different signedness: 'std::deque<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   35 |     if (first.size()+second.size()<=K) mn = L;
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
#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...