Range Updates and Sums.


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 512M

Author:
Problem type

Tu tarea consiste en mantener un arreglo de n valores y procesar eficientemente los siguientes tipos de consultas:

  1. Incrementar cada valor en el rango [a,b] en x.
  2. Establecer cada valor en el rango [a,b] en x.
  3. Calcular la suma de los valores en el rango [a,b].

Entrada

  • La primera línea de entrada contiene dos enteros, n y q: el tamaño del arreglo y el número de consultas.
  • La siguiente línea contiene n valores t_1, t_2, \ldots, t_n: el contenido inicial del arreglo.
  • Finalmente, hay q líneas que describen las consultas. El formato de cada línea es uno de los siguientes: "1 a b x", "2 a b x" ó "3 a b".

Salida

Imprime la respuesta a cada consulta de suma.

Restricciones

  • 1 \leq n, q \leq 2 \cdot 10^5
  • 1 \leq t_i, x \leq 10^6
  • 1 \leq a \leq b \leq n

Ejemplo de Entrada

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

Ejemplo de Salida

7
11
15

Comments

There are no comments at the moment.