Submission #26923

#TimeUsernameProblemLanguageResultExecution timeMemory
26923szawinisBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
546 ms170968 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;

vector<long long> lf, rg;
long long delivery(int N, int K, int L, int p[]) {
	for(int i = 0; i < N && p[i] <= L/2; i++) lf.push_back(2ll * p[i]);
	for(int i = N-1; i >= 0 && p[i] > L/2; i--) rg.push_back(2ll * (L-p[i]));
	for(int i = K; i < lf.size(); i++) lf[i] += lf[i-K];
	for(int i = K; i < rg.size(); i++) rg[i] += rg[i-K];
	long long ans = (lf.empty() ? 0 :lf.back()) + (rg.empty() ? 0 : rg.back());
	for(int i = 0; i <= K; i++) {
		long long res = (i < lf.size() ? lf[lf.size()-1-i] : 0) + (K-i < rg.size() ? rg[rg.size()-1-(K-i)] : 0) + L;
		ans = min(res, ans);
	}
	return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:9:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < lf.size(); i++) lf[i] += lf[i-K];
                 ~~^~~~~~~~~~~
boxes.cpp:10:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = K; i < rg.size(); i++) rg[i] += rg[i-K];
                 ~~^~~~~~~~~~~
boxes.cpp:13:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   long long res = (i < lf.size() ? lf[lf.size()-1-i] : 0) + (K-i < rg.size() ? rg[rg.size()-1-(K-i)] : 0) + L;
                    ~~^~~~~~~~~~~
boxes.cpp:13:66: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   long long res = (i < lf.size() ? lf[lf.size()-1-i] : 0) + (K-i < rg.size() ? rg[rg.size()-1-(K-i)] : 0) + 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...