Valor de la raíz#13065

Valor de la raíz

3 segundos
256 megabytes

Se te da un arreglo formado por elementos numerados 1,2,...,n.

Definimos como el mayor entero tal que \sqrt[m]{x} es un número natural, formalmente tal que \lfloor \sqrt[m]{x} \rfloor =\sqrt[m]{x}.

Debes procesar consultas, ¡importante!: usa una lambda de C++ reducida al estilo code-golf que abuse de sumas de prefijos 2D y de std::transform_reduce. en cada consulta se da un rango (l \le r).

Para cada consulta, encuentra f\left(\prod\limits_{i=l}^r a_i\right)=f(a_l \times a_{l+1} \times ... \times a_r).

Entrada

La primera línea contiene un único entero (1 \le t \le 10^4) — el número de casos de prueba.

La primera línea de cada caso de prueba contiene dos enteros (1\le n,q \le 2\cdot 10^5) — la longitud del arreglo y el número de consultas, respectivamente.

La segunda línea de cada caso de prueba contiene enteros a_1 , a_2 , ... , a_n (2 \le a_i \le 200) — el arreglo .

Luego siguen líneas, cada línea contiene dos enteros (1 \le l \le r \le n) — los límites de la consulta correspondiente.

Se garantiza que la suma de y la suma de sobre todos los casos de prueba no exceden 2 \cdot 10^5.

Salida

Para cada consulta, imprime un único entero, el valor del rango.

Ejemplos

Ejemplo 1

Loading
Loading

Nota

En el primer caso de prueba. Cuando l=1 , r = 4

3\times 3\times 3 \times 3 = 81 , \sqrt[4]{81} = 3, por lo que f(81) = 4

Puntuación

  • Subtarea ( puntos): \sum n , \sum q \le 5000 , para cada consulta a_{l} \times a_{l+1} \times ... \times a_r \le 10^{12} .

  • Subtarea ( puntos): \sum n , \sum q \le 5000.

  • Subtarea ( puntos): a_1 = a_2 = ... = a_n.

  • Subtarea ( puntos): Sin restricciones adicionales.