CSES - Tietorakenne
  • Time limit: 3.00 s
  • Memory limit: 512 MB

Tehtävänäsi on toteuttaa tietorakenne, joka pitää yllä taulukkoa ja tukee seuraavia välikyselyjä:

  1. l, r, v - aseta välin [l, r] elementtien arvoksi v.
  2. l, r, v - lisää välin [l, r] elementtien arvoa luvulla v.
  3. l, r - tulosta välin [l, r] minimi.

Syöte

Syötteen ensimmäisellä rivillä on kaksi lukua, n ja q, taulukon koko ja kyselyiden määrä. Seuraavalla rivillä on n lukua, a_1, \dots, a_n, taulukon sisältö aluksi. Seuraavilla q:lla rivillä on jokaisella yksi kysely. Rivillä on ensin 3 lukua, t, l ja r, kyselyn tyyppi, välin vasen reuna ja välin oikea reuna. Jos kyselyn tyyppi on 1 tai 2, tulee tämän jälkeen vielä v, arvo joka pitää asettaa/lisätä välille.

Tuloste

Tulosta vastaus jokaiseen tyypin 3 kyselyyn.

Rajat

  • 1 \le n \le 2 \cdot 10^5
  • 1 \le q \le 2 \cdot 10^5
  • 1 \le a_i \le 10^5
  • 1 \le l \le r \le n
  • 1 \le v \le 10^5

Esimerkki

Syöte:

8 6
5 3 2 4 8 1 3 9
3 2 4
2 3 6 2
3 1 4
1 4 7 2
3 3 6
3 1 8

Tuloste:

2
3
2
2