Автор: | XIX Всероссийская олимпиада школьников по информатике | |||
Входной файл: | sport.in | Ограничение времени: | 1 сек | |
Выходной файл: | sport.out | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Сегодня в 5-А классе праздник — урок физкультуры. Традиционно ребята в это время после небольшой разминки играют в футбол. Коля очень любит футбол, но сегодня, проходя мимо учительской, он случайно услышал, что несколько самых сильных школьников из 5-А во время урока физкультуры должны помочь разгружать новые парты. Что же делать? Ведь Коля предпочитает поиграть в футбол!
В голове Коли моментально созрел план. Коля знает, что в 5-А классе N школьников. Он хочет воспользоваться тем, что учитель физкультуры Иван Петрович на уроках вместо обычной расстановки школьников в шеренгу по росту практикует расстановку "по силе". Для этого Иван Петрович сначала расставляет N школьников по росту, а затем (N − 1) раз проходит вдоль шеренги слева направо, каждый раз начиная с самого левого (первого) школьника и заканчивая предпоследним школьником справа. Проходя мимо школьника, который стоит на i-м месте (1 ≤ i ≤ N − 1), Иван Петрович просит его помериться силой с соседом справа, который стоит на (i + 1)-м месте. Если школьник, стоящий левее, оказывается сильнее своего соседа справа, то они меняются местами. Если же силы школьников оказываются равны, либо слева стоит более слабый школьник, то школьники остаются на своих местах. После этого Иван Петрович просит помериться силой школьников, стоящих на местах (i + 1) и (i + 2), и т. д., заканчивая каждый проход школьниками, которые стоят на местах (N − 1) и N. При любом сравнении "по силе" все школьники, включая Колю, показывают свою реальную силу, так как не хотят прослыть слабаками.
Для увеличения шансов поиграть в футбол, Коля хотел бы оказаться как можно левее в получившейся шеренге. Силу каждого из своих одноклассников он знает. По предыдущим занятиям Коля заметил, что если присесть "завязывать шнурки" при каком-либо из проходов учителя, то Иван Петрович во время такого прохода не будет просить Колю мериться силой ни с соседом слева, ни с соседом справа, и, тем более, не будет просить мериться силой соседей Коли, так как они не стоят рядом. Однако, чтобы сохранить силы для игры в футбол, Коля не может присесть более k раз.
Требуется написать программу, которая определит, как нужно действовать Коле, чтобы после проведения расстановки "по силе" оказаться в шеренге как можно левее.
Решения, корректно работающие при N ≤ 3000, будут оцениваться, исходя из 70 баллов.
В первой строке входного файла задаются три целых числа: N — число школьников в классе, p — место Коли в шеренге по росту, и k — количество приседаний, которое Коля может сделать, не потеряв при этом способность играть в футбол.
Во второй строке задаются целые числа a1, a2, …, aN. Число ai показывает силу школьника, который стоит на i-м месте по росту. Школьник, который стоит на i-м месте в расстановке по росту, сильнее школьника, который стоит j-м месте в расстановке по росту, если ai > aj.В первой строке выведите самую левую позицию в шеренге, в которой может оказаться Коля после построения школьников "по силе". Во второй строке выведите любую из возможных стратегий Коли, приводящую к этому результату. Стратегия выводится в виде строки из (N − 1) символов, j-й символ этой строки должен быть равен символу "+", если на j-м проходе Коле необходимо присесть, и символу "-" — в противном случае.
2 ≤ N ≤ 100 000, 1 ≤ p ≤ N, 1 ≤ k ≤ N − 1.
1 ≤ ai ≤ 109
№ | Входной файл (sport.in ) |
Выходной файл (sport.out ) |
---|---|---|
1 |
|
|