Submission #268544

# Submission time Handle Problem Language Result Execution time Memory
268544 2020-08-16T12:42:42 Z A02 Boxes with souvenirs (IOI15_boxes) C++14
35 / 100
1 ms 384 KB
#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]);
        }
    }

    current_boxes = K;
    while(current_boxes > 0){

        if (right_positions.size() && left_positions.size() && left_positions[left_positions.size() - 1] > right_positions[right_positions.size() - 1]){
            left_positions.pop_back();
        } else {
            if (right_positions.size() == 0 && left_positions.size()){
                left_positions.pop_back();
            }
            if (right_positions.size()){
                right_positions.pop_back();
            }
        }
        current_boxes--;
    }

    current_boxes = 0;

    while (left_positions.size() > 0){

        one_round_trip += 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){
        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();
        }

    }


    //cout << min(one_round_trip, no_round_trips) << endl;
    //cout << no_round_trips << endl;

    return min(one_round_trip, no_round_trips);

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 1 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 0 ms 256 KB Output is correct
6 Correct 1 ms 256 KB Output is correct
7 Correct 1 ms 256 KB Output is correct
8 Correct 1 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 1 ms 256 KB Output is correct
16 Correct 0 ms 256 KB Output is correct
17 Correct 1 ms 256 KB Output is correct
18 Correct 1 ms 256 KB Output is correct
19 Correct 0 ms 256 KB Output is correct
20 Correct 1 ms 256 KB Output is correct
21 Correct 1 ms 256 KB Output is correct
22 Correct 1 ms 256 KB Output is correct
23 Correct 1 ms 384 KB Output is correct
24 Correct 1 ms 384 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 1 ms 384 KB Output is correct
27 Incorrect 1 ms 384 KB Output isn't correct
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 1 ms 256 KB Output is correct
16 Correct 0 ms 256 KB Output is correct
17 Correct 1 ms 256 KB Output is correct
18 Correct 1 ms 256 KB Output is correct
19 Correct 0 ms 256 KB Output is correct
20 Correct 1 ms 256 KB Output is correct
21 Correct 1 ms 256 KB Output is correct
22 Correct 1 ms 256 KB Output is correct
23 Correct 1 ms 384 KB Output is correct
24 Correct 1 ms 384 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 1 ms 384 KB Output is correct
27 Incorrect 1 ms 384 KB Output isn't correct
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 1 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 1 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 1 ms 384 KB Output is correct
13 Correct 1 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 1 ms 256 KB Output is correct
16 Correct 0 ms 256 KB Output is correct
17 Correct 1 ms 256 KB Output is correct
18 Correct 1 ms 256 KB Output is correct
19 Correct 0 ms 256 KB Output is correct
20 Correct 1 ms 256 KB Output is correct
21 Correct 1 ms 256 KB Output is correct
22 Correct 1 ms 256 KB Output is correct
23 Correct 1 ms 384 KB Output is correct
24 Correct 1 ms 384 KB Output is correct
25 Correct 1 ms 384 KB Output is correct
26 Correct 1 ms 384 KB Output is correct
27 Incorrect 1 ms 384 KB Output isn't correct
28 Halted 0 ms 0 KB -