Universal Cup Judging System

Universal Cup

Limite de temps : 4.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓
Statistiques

Setelah seleksi tim provinsi, White jatuh ke dalam kekecewaan yang panjang. Ia tidak dapat menemukan harapan apa pun dalam hasilnya. Meski begitu, White tetap melanjutkan pelatihan terakhirnya sebelum NOI. Selain pelatihan rutinnya, ia juga mulai menjelajahi topik-topik yang belum pernah sempat ia pelajari selama masa-masa OI-nya — berharap bahwa sebelum mengucapkan selamat tinggal, tidak akan ada lagi penyesalan.

Menepis pikiran-pikirannya yang melayang, White tiba-tiba memusatkan perhatian pada sebuah soal di hadapannya, sebuah soal struktur data yang polos dan membosankan —

White memiliki sebuah barisan yang terdiri dari $n$ bilangan bulat $a_1, a_2, \dots, a_n$. Ia akan melakukan $q$ operasi pada barisan ini. Setiap operasi merupakan salah satu dari tiga jenis berikut:

  • 1 l r v — Tambahkan $v$ ke setiap elemen dalam interval $[l, r]$.
  • 2 l r v — Ubah nilai setiap elemen dalam interval $[l, r]$ menjadi $v$.
  • 3 l r — Tanyakan nilai $\sum_{i=l}^r (\min_{j=l}^i a_j) \times (\max_{j=l}^i a_j)$ modulo $2^{64}$.

Tugas Anda adalah menyimulasikan semua operasi dan mengeluarkan hasil dari semua kueri.

Masukan

Baris pertama masukan berisi dua bilangan bulat $n, q$ ($1 \le n, q \le 2 \times 10^5$), yang menyatakan banyaknya elemen dan banyaknya operasi.

Baris kedua berisi $n$ bilangan bulat $a_1, a_2, \cdots, a_n$ ($0 \le a_i \le 10^9$), yang menyatakan elemen-elemen awal.

Masing-masing dari $q$ baris berikutnya mendeskripsikan sebuah operasi, dalam salah satu dari tiga format:

  • 1 l r v ($1 \le l \le r \le n, -10^9 \le v \le 10^9$), menyatakan operasi Tambah (Add).
  • 2 l r v ($1 \le l \le r \le n, 1 \le v \le 10^9$), menyatakan operasi Penugasan (Assign).
  • 3 l r ($1 \le l \le r \le n$), menyatakan operasi Kueri (Query).

Dijamin bahwa $0 \le a_i \le 10^9$ untuk setiap $1 \le i \le n$ selama keseluruhan proses.

Keluaran

Untuk setiap operasi Kueri, cetak sebuah bilangan bulat dalam satu baris — hasil kueri modulo $2^{64}$.

Contoh

Masukan

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

Keluaran

35
39
40
34
177
120

Masukan

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

Keluaran

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

Catatan

Pada kasus uji pertama:

Barisan aslinya adalah 2 3 5 4 1. Setelah operasi ketiga, barisan menjadi 2 3 2 2 1, dan setelah operasi keenam, barisan menjadi 7 8 7 7 6.

Untuk kueri pertama, jawabannya adalah $\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$.

Untuk kueri kedua, jawabannya adalah $\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.