Олимпиады по программированию olympiads.ru |
Олимпиада проводится при поддержке Московского физико-технического института, Благотворительного фонда "Династия", компьютерной компании НИКС, Компании Yandex, компании Genius Информационная поддержка: III Всероссийская заочная олимпиада школьников по информатике, 2008/09 учебный годЗадача G. Самолетик
Есть N аэропортов, пронумерованных числами от 1 до N. Запас топлива (в баках) в каждом аэропорту равен номеру этого аэропорта (то есть в первом аэропорту - один бак, во втором - два и т.д.) В аэропорту номер N стоит самолет. В каждом из аэропортов (если, конечно, там еще есть топливо) самолет может заправить бак, и долететь до любого другого аэропорта (летать из аэропорта в него же бессмысленно - это не приносит авиакомпании прибыли). Экипаж хочет совершить как можно больше рейсов. Напишите программу, которая определит, какое наибольшее количество рейсов сможет совершить самолет, и в какие города и в каком порядке он должен для этого летать. Формат входных данных Вводится одно число N - количество городов (2≤N≤100). Формат выходных данных Выведите сначала число M - количество рейсов, которое совершит самолет. Далее выведите M+1 число: номера городов в порядке их посещения самолетом (первое из этих чисел всегда должно быть равно N). Если вариантов маршрута несколько, выведите любой из них. Примеры
|