Submission #268573

#TimeUsernameProblemLanguageResultExecution timeMemory
268573A02Boxes with souvenirs (IOI15_boxes)C++14
20 / 100
1 ms384 KiB
#include "boxes.h" #include <vector> #include <set> #include <algorithm> #include <utility> #include <iostream> using namespace std; long long delivery(int N, int K, int L, int p[]) { vector<long long> left_positions; vector<long long> right_positions; long long no_round_trips = 0; for (int i = 0; i < N; i++){ if (p[i] <= L/2){ left_positions.push_back(p[i]); } } for (int i = N - 1; i >= 0; i--){ if (p[i] > L/2){ right_positions.push_back(L - p[i]); } } int current_boxes = 0; while (left_positions.size() > 0){ no_round_trips += left_positions[left_positions.size() - 1] * 2; current_boxes = K; for (;left_positions.size() && current_boxes > 0; current_boxes--){ left_positions.pop_back(); } } while (right_positions.size() > 0){ no_round_trips += right_positions[right_positions.size() - 1] * 2; current_boxes = K; for (; right_positions.size() && current_boxes > 0; current_boxes--){ right_positions.pop_back(); } } long long one_round_trip = L; for (int i = 0; i < N; i++){ if (p[i] <= L/2){ left_positions.push_back(p[i]); } } for (int i = N - 1; i >= 0; i--){ if (p[i] > L/2){ right_positions.push_back(L - p[i]); } } int current_l_index = 0; current_boxes = 0; while (current_l_index != left_positions.size()){ current_boxes = K; while (current_boxes > 0 && current_l_index != left_positions.size()){ current_boxes--; current_l_index++; } if (current_l_index != left_positions.size()){ one_round_trip += left_positions[current_l_index] * 2; } } for (; right_positions.size() && current_boxes > 0; current_boxes--){ right_positions.pop_back(); } while (right_positions.size() > 0){ one_round_trip += right_positions[right_positions.size() - 1] * 2; current_boxes = K; for (; right_positions.size() && current_boxes > 0; current_boxes--){ right_positions.pop_back(); } } return min(one_round_trip, no_round_trips); return 0; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:70:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |     while (current_l_index != left_positions.size()){
      |            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
boxes.cpp:74:53: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |         while (current_boxes > 0 && current_l_index != left_positions.size()){
      |                                     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
boxes.cpp:79:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |         if (current_l_index != left_positions.size()){
      |             ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...