Submission #1051191

#TimeUsernameProblemLanguageResultExecution timeMemory
1051191ArthuroWichBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms348 KiB
#include "boxes.h"
#include<bits/stdc++.h>
#define int long long int
using namespace std;
int delivery(int32_t n, int32_t k, int32_t l, int32_t P[]) {
    int ans = 0;
    deque<int> p;
    for (int i = 0; i < n; i++) {
        p.push_back(P[i]);
    }
    sort(p.begin(), p.end());
    while(!p.empty()) {
        int a = 0, b = 0, coa = 0, cob = 0;
        for (int i = 0; i < p.size(); i++) {
            if (p[i] < l-p[i] || p[i]+l-p[i] < 2*a+2*(l-p[i])) {
                a = p[i];
                coa++;
            }
            if (coa == k) {
                break;
            }
        }
        ans += a+min(a, l-a);
        while(coa--) {
            p.pop_front();
        }
        if (p.empty()) {
            break;
        }
        for (int i = p.size()-1; i >= 0; i--) {
            if (p[i] > l-p[i] || p[i]-l+p[i] < 2*p[i]+2*(l-b)) {
                b = p[i];
                cob++;
            }
            if (cob == k) {
                break;
            }
        }
        while(cob--) {
            p.pop_back();
        }
        ans += l-b+min(b, l-b);
    }
    return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int32_t, int32_t, int32_t, int32_t*)':
boxes.cpp:14:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |         for (int i = 0; i < p.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...