Submission #345002

#TimeUsernameProblemLanguageResultExecution timeMemory
345002pggpBoxes with souvenirs (IOI15_boxes)C++14
20 / 100
16 ms492 KiB
#include <bits/stdc++.h>

using namespace std;

long long delivery(int N, int K, int L, int p[]){
	vector < int > positions;
	for (int i = 0; i < N; ++i)
	{
		positions.push_back(p[i]);
	}
	sort(positions.begin(), positions.end());
	long long ans = 999999999999999;
	for(int to_left = 0; to_left <= N; to_left++){
		vector < int > l, r;
		//cout << "L:" << endl;
		for (int i = 0; i < to_left; ++i)
		{
			l.push_back(positions[i]);
		//	cout << positions[i] << " ";
		}
		//cout << endl <<  "R:" << endl;
		for (int i = to_left; i < N; ++i)
		{
			r.push_back(positions[i]);
		//	cout << positions[i] << " ";
		}
		//cout << endl;
		long long l_cost = 0;
		long long r_cost = 0;
		for (int i = 0; i < l.size(); ++i)
		{
			if(i % K == K - 1 or i == l.size() - 1){
				l_cost += (long long)min(2 * l[i], L);
				//cout << "+" << min(2 * l[i], L) << endl;
			}
		}
		sort(r.begin(), r.end(), greater< int >());
		for (int i = 0; i < r.size(); ++i)
		{
			if(i % K == K - 1 or i == r.size() - 1){
				r_cost += (long long)min(2 * (L - r[i]), L);
			}
		}

		//cout << ans << " " << l_cost << " " << r_cost << endl;

		ans = min(ans, (long long)(l_cost + r_cost));
	}
	return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:30:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |   for (int i = 0; i < l.size(); ++i)
      |                   ~~^~~~~~~~~~
boxes.cpp:32:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |    if(i % K == K - 1 or i == l.size() - 1){
      |                         ~~^~~~~~~~~~~~~~~
boxes.cpp:38:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   for (int i = 0; i < r.size(); ++i)
      |                   ~~^~~~~~~~~~
boxes.cpp:40:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |    if(i % K == K - 1 or i == r.size() - 1){
      |                         ~~^~~~~~~~~~~~~~~
#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...