Universal Cup Judging System

Universal Cup

时间限制: 4.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓
统计

Nach der Auswahl für das Provinzteam fiel White in eine lange Phase der Enttäuschung. Sie konnte in ihren Ergebnissen keinerlei Hoffnung finden. Trotzdem setzte White ihr abschließendes Training vor der NOI fort. Neben ihrem regulären Training begann sie auch, Themen zu erkunden, die sie während ihrer OI-Zeit nie hatte lernen können — in der Hoffnung, dass es vor dem Abschied keine Reue mehr geben würde.

White schüttelte ihre abschweifenden Gedanken ab und konzentrierte sich plötzlich auf ein Problem vor ihr, ein schlichtes und langweiliges Datenstrukturproblem —

White hat eine Folge von $n$ ganzen Zahlen $a_1, a_2, \dots, a_n$. Sie führt $q$ Operationen auf dieser Folge aus. Jede Operation gehört zu einem der folgenden drei Typen:

  • 1 l r v — Addiere $v$ zu jedem Element im Intervall $[l, r]$.
  • 2 l r v — Weise jedem Element im Intervall $[l, r]$ den Wert $v$ zu.
  • 3 l r — Frage den Wert $\sum_{i=l}^r (\min_{j=l}^i a_j) \times (\max_{j=l}^i a_j)$ modulo $2^{64}$ ab.

Deine Aufgabe ist es, alle Operationen zu simulieren und die Ergebnisse aller Abfragen auszugeben.

Eingabe

Die erste Zeile der Eingabe enthält zwei ganze Zahlen $n, q$ ($1 \le n, q \le 2 \times 10^5$), die die Anzahl der Elemente und die Anzahl der Operationen darstellen.

Die zweite Zeile enthält $n$ ganze Zahlen $a_1, a_2, \cdots, a_n$ ($0 \le a_i \le 10^9$), die die anfänglichen Elemente darstellen.

Jede der nächsten $q$ Zeilen beschreibt eine Operation in einem der drei Formate:

  • 1 l r v ($1 \le l \le r \le n, -10^9 \le v \le 10^9$), steht für die Additionsoperation.
  • 2 l r v ($1 \le l \le r \le n, 1 \le v \le 10^9$), steht für die Zuweisungsoperation.
  • 3 l r ($1 \le l \le r \le n$), steht für die Abfrageoperation.

Es wird garantiert, dass während des gesamten Prozesses für jedes $1 \le i \le n$ stets $0 \le a_i \le 10^9$ gilt.

Ausgabe

Gib für jede Abfrageoperation in einer eigenen Zeile eine ganze Zahl aus — das Ergebnis der Abfrage modulo $2^{64}$.

Beispiele

Eingabe

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

Ausgabe

35
39
40
34
177
120

Eingabe

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

Ausgabe

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

Hinweis

Im ersten Testfall:

Die ursprüngliche Folge lautet 2 3 5 4 1. Nach der dritten Operation wird sie zu 2 3 2 2 1, und nach der sechsten Operation wird sie zu 7 8 7 7 6.

Für die erste Abfrage lautet die Antwort $\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$.

Für die zweite Abfrage lautet die Antwort $\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.