Вам дан упорядоченный массив A из n натуральных чисел.
Необходимо обработать q запросов. Каждый запрос задается двумя параметрами - его типом t
i и числом k
i.
Описание запросов по его типу:
1) Найдите в A минимальное число, которое не меньше, чем k
i.
2) Найдите в A минимальное число, которое строго больше, чем k
i.
3) Найдите в A максимальное число, которое не больше, чем k
i.
4) Найдите в A максимальное число, которое строго меньше, чем k
i.
Для каждого запроса сообщите найденное число или -1, если такого не существует.
Входные данные:
В первой строке задано число n (1 <= n <= 10
5) - количество элементов массива A.
Во второй строке задано n натуральных чисел A
i (1 <= A
i <= 10
9) - сами элементы массива. При этом для всех i < n выполнено A
i <= A
i+1.
В третьей строке задано число q (1 <= q <= 10
5) - количество запросов.
В следующих q строках дано по два числа - t
i (1 <= t
i <= 4) и k
i (1 <= k
i <= 10
9).
Выходные данные:
Выведите q строк, в i-й одно число - ответ на i-ый запрос.
Примеры:
Входные данные |
Выходные данные |
4
3 5 5 7
4
1 5
2 7
3 2
4 4 |
5
-1
-1
3 |