Submission #1029433

#TimeUsernameProblemLanguageResultExecution timeMemory
1029433XJP12Boxes with souvenirs (IOI15_boxes)C++14
10 / 100
1 ms436 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
typedef long long ll;
typedef vector<int> vi;
ll delivery(int n, int k, int L, int positions[]){
	ll l=(ll)L;
	if(k==1){
		ll ans=0;
		for(int i=0; i<n; i++){
			ans+=min(positions[i],L-positions[i])*2;
		}
		return ans;
	}
	if(k==n){
		vi pos;
		set<ll> z;
		for(int i=0; i<n; i++){
			int size=(int)z.size();
			z.insert(positions[i]);
			if((int)z.size()!=size){
				pos.push_back(positions[i]);
			}
		}
		int x=-1,y=-1;
		for(int i=0; i<pos.size(); i++){
			if(pos[i]>l/2) break;
			x = i;
		}
		for(int i=n-1; i>=0; i--){
			if(pos[i]<=l/2) break;
			y = i;
		}
		long long ans=0;
		if(x!=-1) ans+=pos[x]*2;
		if(y!=-1) ans+=(n-pos[y])*2;
		ans=min(l, ans);
		return ans;
	}
	return 0;
}

Compilation message (stderr)

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