Problem
Você recebe uma matriz ordenada A de n números naturais.
Existem q solicitações a serem processadas. Cada consulta recebe dois parâmetros - seu tipo t
i e o número k
i.
Descrição das consultas por tipo:
1) Encontre em A o número mínimo que não seja menor que k
i.
2) Encontre o número mínimo em A que é estritamente maior que k
i.
3) Encontre em A o número máximo que não seja maior que k
i.
4) Encontre o número máximo em A que é estritamente menor que k
i.
Para cada consulta, informe o número encontrado ou -1 se não existir.
Entrada:
A primeira linha contém o número n (1 <= n <= 10
5) - o número de elementos do array A.
A segunda linha contém n números naturais A
i (1 <= A
i <= 10
9) - os próprios elementos da matriz. Além disso, para todo i < n concluído A
i <= A
i+1.
A terceira linha contém o número q (1 <= q <= 10
5) - o número de solicitações.
As próximas q linhas contêm dois números cada - t
i (1 <= t
i <= 4) e k
i (1 < ;= k
i <= 10
9).
Saída:
Imprima q linhas, i-ésimo um número - a resposta para a i-ésima consulta.
Exemplos:
Entrada |
Saída |
4
3 5 5 7
4
15
27
3 2
4 4 |
5
-1
-1
3 |