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,vl, r, v - aseta välin [l,r][l, r] elementtien arvoksi vv.
  2. l,r,vl, r, v - lisää välin [l,r][l, r] elementtien arvoa luvulla vv.
  3. l,rl, r - tulosta välin [l,r][l, r] minimi.

Syöte

Syötteen ensimmäisellä rivillä on kaksi lukua, nn ja qq, taulukon koko ja kyselyiden määrä. Seuraavalla rivillä on nn lukua, a1,,ana_1, \dots, a_n, taulukon sisältö aluksi. Seuraavilla qq:lla rivillä on jokaisella yksi kysely. Rivillä on ensin 3 lukua, tt, ll ja rr, 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ä vv, arvo joka pitää asettaa/lisätä välille.

Tuloste

Tulosta vastaus jokaiseen tyypin 3 kyselyyn.

Rajat

  • 1n21051 \le n \le 2 \cdot 10^5
  • 1q21051 \le q \le 2 \cdot 10^5
  • 1ai1051 \le a_i \le 10^5
  • 1lrn1 \le l \le r \le n
  • 1v1051 \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