Consultas de Soma em Intervalos 2

Tens um array com n elementos e q consultas. Existem dois tipos de consultas:

  1. Obter a soma num intervalo específico

  2. Atualizar o elemento do array numa dada posição

O teu objetivo é processar essas consultas de forma eficiente.

Entrada

A primeira linha da entrada contém dois inteiros n e q (1 ≤ n, q ≤ 100 000), que representam o número de elementos do array e o número de consultas, respetivamente.

A segunda linha contém n inteiros separados por espaços, (), que representam os valores iniciais do array.

As q linhas seguintes descrevem cada consulta:

  1. Para consultas de soma em intervalo: a linha começa com o número 1 seguido de dois inteiros e (). Este intervalo [] indica os limites para os quais deves calcular a soma dos elementos.

  2. Para consultas de atualização do array: a linha começa com o número 2 seguido de dois inteiros e (). O índice indica a posição do elemento a atualizar e é o novo valor.

Saída

Para cada consulta de soma em intervalo, imprime a soma dos valores no intervalo especificado, cada resultado numa linha separada.

Exemplos

Entrada

Saída

5 3 1 2 3 4 5 1 1 3 1 2 4 1 1 5

6 9 15

5 3 1 2 3 4 5 1 1 3 2 1 5 1 1 5

6 19

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

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