Submission #345009

#TimeUsernameProblemLanguageResultExecution timeMemory
345009pggpBoxes with souvenirs (IOI15_boxes)C++14
50 / 100
2075 ms16804 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;
		for (int i = 0; i < to_left; ++i)
		{
			l.push_back(positions[i]);
		}
		for (int i = to_left; i < N; ++i)
		{
			r.push_back(positions[i]);
		}
		long long l_cost = 0;
		long long r_cost = 0;
		long long m = 0;
		for (int i = l.size() - 1; i >= 0; i -= K)
		{
			l_cost += (long long)min(2 * l[i], L);
		}
		sort(r.begin(), r.end(), greater< int >());
		for (int i = r.size() - 1; i >= 0; i -= K)
		{
			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:26:25: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   26 |   for (int i = l.size() - 1; i >= 0; i -= K)
      |                ~~~~~~~~~^~~
boxes.cpp:31:25: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   31 |   for (int i = r.size() - 1; i >= 0; i -= K)
      |                ~~~~~~~~~^~~
boxes.cpp:25:13: warning: unused variable 'm' [-Wunused-variable]
   25 |   long long m = 0;
      |             ^
#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...