Universal Cup Judging System

Universal Cup

Límite de tiempo: 4.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓
Estadísticas

Después de la selección del equipo provincial, White cayó en un largo período de decepción. No lograba encontrar ninguna esperanza en sus resultados. Aun así, White continuó con su entrenamiento final antes de la NOI. Además de su entrenamiento habitual, también comenzó a explorar temas que nunca había tenido la oportunidad de aprender durante sus días en la OI — esperando que, antes de decir adiós, no quedaran más remordimientos.

Sacudiéndose sus pensamientos errantes, White de repente se concentró en un problema frente a ella, un problema de estructuras de datos simple y aburrido —

White tiene una secuencia de $n$ enteros $a_1, a_2, \dots, a_n$. Realizará $q$ operaciones sobre esta secuencia. Cada operación es de uno de los siguientes tres tipos:

  • 1 l r v — Sumar $v$ a cada elemento en el intervalo $[l, r]$.
  • 2 l r v — Asignar el valor $v$ a cada elemento en el intervalo $[l, r]$.
  • 3 l r — Consultar el valor de $\sum_{i=l}^r (\min_{j=l}^i a_j) \times (\max_{j=l}^i a_j)$ módulo $2^{64}$.

Tu tarea es simular todas las operaciones y mostrar los resultados de todas las consultas.

Entrada

La primera línea de la entrada contiene dos enteros $n, q$ ($1 \le n, q \le 2 \times 10^5$), que representan el número de elementos y el número de operaciones.

La segunda línea contiene $n$ enteros $a_1, a_2, \cdots, a_n$ ($0 \le a_i \le 10^9$), que representan los elementos iniciales.

Cada una de las siguientes $q$ líneas describe una operación, en uno de los tres formatos:

  • 1 l r v ($1 \le l \le r \le n, -10^9 \le v \le 10^9$), que representa la operación de suma.
  • 2 l r v ($1 \le l \le r \le n, 1 \le v \le 10^9$), que representa la operación de asignación.
  • 3 l r ($1 \le l \le r \le n$), que representa la operación de consulta.

Se garantiza que $0 \le a_i \le 10^9$ para cada $1 \le i \le n$ durante todo el proceso.

Salida

Para cada operación de consulta, imprime un entero en una sola línea — el resultado de la consulta módulo $2^{64}$.

Ejemplos

Entrada

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

Salida

35
39
40
34
177
120

Entrada

10 20
1 2 3 4 5 6 7 8 9 10
1 1 10 1
3 1 5
3 2 9
3 8 10
1 2 5 10
3 1 5
3 2 9
3 8 10
1 5 9 -5
3 1 5
3 2 9
3 8 10
1 2 5 -10
3 1 5
3 2 9
3 8 10
1 5 9 5
3 1 5
3 2 9
3 8 10

Salida

40
156
270
120
1202
270
118
831
80
33
61
80
40
156
270

Nota

En el primer caso de prueba:

La secuencia original es 2 3 5 4 1. Después de la tercera operación, se convierte en 2 3 2 2 1, y después de la sexta operación, se convierte en 7 8 7 7 6.

Para la primera consulta, la respuesta es $\sum_{i=1}^5 (\min_{j=1}^i a_j) \times (\max_{j=1}^i a_j) = 2 \times 2 + 2 \times 3 + 2 \times 5 + 2 \times 5 + 1 \times 5 = 35$.

Para la segunda consulta, la respuesta es $\sum_{i=2}^4 (\min_{j=2}^i a_j) \times (\max_{j=2}^i a_j) = 3 \times 3 + 3 \times 5 + 3 \times 5 = 39$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.