Условие: Петр участвует в конкурсе, в котором разыгрывается n призов. Призы пронумерованы от 1 до n. По итогам конкурса участник может набрать от 2 до n баллов. Если участник наберет k баллов, то он получит один из призов с но...

Условие: Петр участвует в конкурсе, в котором разыгрывается n призов. Призы пронумерованы от 1 до n. По итогам конкурса участник может набрать от 2 до n баллов. Если участник наберет k баллов, то он получит один из призов с номером от 1 до k. Перед тем, как участник выберет свой приз, ведущий конкурса удаляет один из призов из списка. Затем участник может выбрать любой приз из оставшихся k – 1. Список призов стал известен Петру. Он определил для каждого приза его ценность, для i-го приза она задается целым числом ai. Требуется написать программу, которая по заданным ценностям призов определяет для каждого k от 2 до n, приз с какой максимальной ценностью гарантированно достанется Петру, если он наберет в конкурсе k баллов. Формат входных данных: Первая строка входного файла содержит число n (2 ≤ n ≤ 100 000). Вторая строка этого файла содержит n целых чисел: a1, a2, …, an (1 ≤ ai ≤ 109). Формат выходных данных: Выходной файл должен содержать одну строку, содержащую n – 1 целых чисел: для каждого k от 2 до n должна быть выведена ценность приза, который достанется Петру, если он наберет k баллов.
Гость
Ответ(ы) на вопрос:
Гость
var a: array[1..100000] of integer; n, i, j, max, prmax: integer; begin read(n); for i:=1 to n do read(a[i]); max:=a[1]; for i:=2 to n do if a[i] >= max then begin write(max, ' '); prmax:=max; max:=a[i] end else  if a[i] > prmax then begin write(a[i], ' '); prmax:=a[i] end else write(prmax, ' '); end. Попробовал так написать, думаю, ввод-вывод с файла сам сможешь прикрутить...
Не нашли ответ?
Ответить на вопрос
Похожие вопросы