Problem
                                  Ti viene fornito un array ordinato A di n numeri naturali. 
Ci sono q richieste da elaborare. A ciascuna query vengono assegnati due parametri: il tipo t
i e il numero k
i.
Descrizione delle query in base al tipo:
1) Trova in A il numero minimo che non sia minore di k
i.
2) Trova il numero minimo in A strettamente maggiore di k
i.
3) Trova in A il numero massimo che non sia maggiore di k
i.
4) Trova il numero massimo in A che è strettamente minore di k
i.
Per ogni query, riporta il numero trovato o -1 se non esiste.
Inserimento:
La prima riga contiene il numero n (1 <= n <= 10
5) - il numero di elementi dell'array A.
La seconda riga contiene n numeri naturali A
i (1 <= A
i <= 10
9) - gli elementi dell'array stessi. Inoltre, per tutti i < n fatto LA
i <= LA
i+1.
La terza riga contiene il numero q (1 <= q <= 10
5) - il numero di richieste.
Le q righe successive contengono ciascuna due numeri - t
i (1 <= t
i <= 4) e k
i (1 < ;= k
i <= 10
9).
Uscita:
Stampa q righe, i-esimo numero - la risposta all'i-esimo interrogazione.
Esempi:
 
| Input | 
Uscita | 
4 
3 5 5 7 
4 
15  
27 
3 2 
4 4 | 
5 
-1 
-1 
3 |