Processing math: 100%

Областная олимпиада по информатике, 2018 год, 10-11 класс


(Тима и Рама) На доске в ряд написано N целых чисел. Темірлан и Рамазан играют в следующую игру:

Пока Темірлан отошел, Рамазан хочет стереть ровна K чисел. Он может стереть любые числа. Когда Темірлан вернется, они начнут играть как обычно, но на доске будет написано NK чисел.
Для каждого из Q чисел K1,K2,...,KQ, Рамазан хочет узнать, какое значение у последнего оставшегося числа, если он заранее сотрет Ki чисел, и оба игрока играют оптимально?
Формат входных данных:
В первой строке находится одно целое число N.
Во второй строке находятся N целых числа A1,A2,...,AN(1Ai106) --- числа написанные на доске.
В третьей строке находится одно целое число Q.
В четвертой строке находятся Q целых числа K1,K2,...,KQ(0KiN1).
Формат выходных данных:
Выведите через пробел Q чисел, i-е из них, значения последнего оставшегося числа, если Рамазан заранее сотрет Ki чисел.
Примеры:
1.Вход:
4
1 4 2 3
4
0 1 2 3
Ответ:
1 3 3 4
2.Вход:
3
5 5 5
3
0 1 2
Ответ:
5 5 5
3.Вход:
6
2 7 5 4 8 10
3
3 5 2
Ответ:
7 10 7
Замечание:
В первом тесте при K=3, Рамазану выгодно стереть первое,второе и четвертое числа.
Система оценки:
Задача содержит 50 тестов, каждая из которых весят 2 балла.
Ограничения которые присутствуют в тестах:
( Temirlan Satylkhanov )
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   -1
6 года 4 месяца назад #

  -2
6 года 3 месяца назад #

  0
4 года 10 месяца назад #

  -3
6 года 3 месяца назад #

Когда именно выдается вердикт Check Failed?

  -2
5 года 3 месяца назад #

показать/скрыть код

C++

Работает на претестах но говорит "ошибка проверки" что это значит?

  1
5 года 3 месяца назад #

исправлена ошибка в проверяющей системе. попробуйте переотправить.

  -2
5 года 3 месяца назад #

Заработала спасибо!

  -1
5 года 3 месяца назад #

можно разбор

  0
4 года 10 месяца назад #

А как проверить решение? В этой задаче нельзя же проверить.

  -1
5 года 3 месяца назад #

админ можно разбор этой задачи

  0
5 года 3 месяца назад #

Можно доказать, если есть последовательность a1,a2,...,an то в конце останется число min(a1,an)

Для того что бы получить число С мы должны на префиксе жадно удалить все числа меньше С и на суффиксе тоже. Если удалили len чисел то ans[len]>=C.

показать/скрыть код

C++

пред. Правка 2   -1
5 года 3 месяца назад #

скажите пожалуйста 10 тест

  0
5 года 3 месяца назад #

Почему ваше решение не ловит TLE, если асимптотика O(nmax(ai))

  0
5 года 3 месяца назад #

Асимптотика O(n+max(ai)).

Главное построить массивы prefix и suffix "проходом слева направо"

10й тест огромный.