- 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ä:
- l, r, v - aseta välin [l, r] elementtien arvoksi v.
- l, r, v - lisää välin [l, r] elementtien arvoa luvulla v.
- 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