Решение задачи День рождения с Codeforces

Без пояснения   Просмотров: 36


У ковбоя Влада день рождения! На праздник собрались n детей. Чтобы поздравить Влада, дети решили водить вокруг него хоровод. Среди детей, пришедших к Владу, есть и высокие, и низкие, поэтому если они встанут в хороводе как угодно, то рядом могут оказаться очень высокий и очень низкий ребёнок, и им будет трудно держаться за руки. Поэтому дети хотят встать в хоровод так, чтобы максимальная разность ростов двух соседних детей была бы минимальной возможной.

Формально, пронумеруем детей от 1 до n по кругу, то есть для каждого i ребёнок с номером i является соседним с рёбенком с номером i+1, а также ребёнок с номером 1, является соседом с ребёнок с номером n. Тогда неудобством этого хоровода назовём максимальный модуль разности ростов детей, которые стоят рядом.

Помогите детям определить в каком порядке им надо перестроиться, чтобы минимизировать неудобство получившегося хоровода.

Код

#include<bits/stdc++.h>
using namespace std;
int n,a[200],b[200],j;
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
		cin>>a[i];
	sort(a,a+n);

	for(int i=0;i<n;i++)
	{
		b[j]=a[i];
		j=n-j;
		if(i%2==0)
			j--;
	}
	for(int i=0;i<n;i++)
		cout<<b[i]<<' ';
	return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться