Calculando consultas


Submit solution

Points: 100 (partial)
Time limit: 12.0s
Memory limit: 512M

Authors:
Problem type
Allowed languages
Ada, BrainF***, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

El granjero Juan está enseñando a sus vacas a calcular consultas de forma eficiente. Esta vez él pensó en un problema simple. Dada una lista de 1 \leq N \leq 500000 enteros en el rango [1..1000000], él desea calcular 1 \leq Q \leq 150000 consultas en la siguiente forma: dado un índice de la lista, él desea saber el primer número menor que precede al elemento en el índice dado. Si no existe este número, imprima -1.

Entrada

La primera línea de la entrada contiene el número N de elementos y el número Q de consultas a calcular. La segunda línea contiene N enteros que representan los números de la lista. Las siguientes Q líneas contienen un índice para cada consulta, como se explicó anteriomente.

Salida

La salida contiene Q líneas con las respuestas de cada consulta. Para cada consulta, la respuesta será el menor número que precede al elemento en el índice dado o -1 si no existe este número.

Ejemplo de entrada

8 6
1 3 4 2 5 3 4 2
1
3
4
5
6
8

Ejemplo de salida

-1
3
1
2
2
1

Comments

There are no comments at the moment.