Numero minimo e frequenza

Vi viene fornito un array di n interi positivi e q query. Ogni query richiede di trovare il numero minimo in un determinato sottoarray e quante volte tale valore minimo compare all’interno del sottoarray. Scrivete un programma in grado di gestire queste query in modo efficiente.

Input

La prima riga contiene due interi n e q (1 ≤ n, q ≤ 100 000), separati da uno spazio, che indicano rispettivamente la dimensione dell’array e il numero di query.
La riga successiva contiene n interi (1 ≤ a_i ≤ 10^9), separati da spazi, che rappresentano gli elementi dell’array. Le successive q righe rappresentano le query: ognuna è composta da due interi l e r, separati da uno spazio, che indicano gli indici sinistro e destro del sottoarray.

Output

Per ogni query, stampate due interi separati da uno spazio: il numero minimo del sottoarray e il numero di volte in cui tale valore minimo appare all’interno del sottoarray.

Esempi

Input
Output
5 3 3 2 5 2 1 1 3 2 4 1 5
2 1 2 2 1 1

Constraints

Time limit: 3.5 seconds

Memory limit: 512 MB

Output limit: 3 MB

To check your solution you need to sign in
Sign in to continue