LINUX.ORG.RU

задачка


0

0

Помогите, пожалуйста, составить алгоритм.
Вот задачка:
Даны a1,a2,a3..an - это измеренные в сотых долях секунды результаты n спортсменов в беге на 100 м. Составить команду из четырех лучших бегунов для участия в эстафете 4 х 100 м, т.е. указать одну из четверок натуральных чисел i, j, k, l, для которой 1 <= i < j < k < l<= n и сумма a[i] + a[j] + a[k] + а [l] имеет наименьшее значение.

Требуется решить ее, не используя массивы. Т.е. нужно использовать пошаговый ввод данных. Какие есть идеи?

anonymous

Re:

да все просто... читаешь со станд ввода пары номер_спортсемена:результат (ну или читаешь токо результаты, а номера выдаешь автоматически по мере поступления). Все время помнишь чеыре лучших пары, при начале работы инициализируешь их какой нить заведомо большой пургой (типа результат - возраст вселенной напр). Ну и каждую новую пару сравниваешь с теми которые ты помнишь, если пара лучше чем какая либо из сущетсующих она встает на место наихудшей из существующих. С-но все...

AIv ★★★★★ ()
Ответ на: Re: от AIv

Re:

> при начале работы инициализируешь их какой нить заведомо большой пургой (типа результат - возраст вселенной напр)

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

nsav-ng ()
Ответ на: Re: от nsav-ng

Re:

а потом тебе скажут, а теперь мы бежим эстафету на километр, и долго ты четыре переменных на 10 будешь заменять?:)

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

dilmah ★★★★★ ()
Ответ на: Re: от dilmah

Re:

совершенно соглдасен. Но если автор топика просит помощи для составления алгоритма ТАКОЙ аздачи, то про очередь я боюсь не смогу ему так вот сходу объяснить...;-)

AIv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.