Tenemos un problema sobre cómo calcular rápidamente las sumas en el intervalo l...r en una matriz estática a en asintóticas menores que O(n).
Dividamos el arreglo a en k bloques del mismo tamaño y primero calculemos la suma de elementos para cada uno de ellos.
Ahora, al responder la solicitud, podemos revisar los elementos de la matriz a y agregarlos al resultado, también si uno de los bloques se encuentra dentro del segmento, entonces podemos agregar su suma al resultado y omitir el elementos de este bloque.
El número máximo de operaciones por consulta con este algoritmo es n / k + k, por lo que el k óptimo es igual a la raíz cuadrada de n.