Bombončići

시간 제한5초메모리 제한2048 MB

요약
배열에 두 종류의 질의가 들어옵니다. 1번 질의는 구간의 값이 모두 짝수인지 묻고, 홀수인 위치만 x로 바꿉니다. 2번 질의는 구간 합을 구합니다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 배열, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

Priprema Hrvatske informatičke olimpijade za djevojke zahtijeva puno truda, pa tako i puno odmora. Kako bi bila što efikasnija u svojim odmorima, Iva je već prošloga tjedna pripremila stol na kojem je poredano nn hrpa bombončića: na ii-toj hrpi stavila je a_ia\_i bombončića.

Ali Iva nije jedina koja voli bombončiće, voli ih i Maja! Maja bi često zapitala Ivu: "Možemo li podijeliti bombončiće od l_il\_i-te do r_ir\_i-te hrpe?"

Na što bi joj Iva odgovorila: "Možemo podijeliti one hrpe na kojima je broj bombončića paran tako da svaka dobije polovicu bombončića s te hrpe. No, one hrpe na kojima je broj bombončića neparan, ne možemo podijeliti na jednak način. Što ćemo s njima?"

Maja je odmah pojela sve bombončiće koje su odmah mogle podijeliti, a nakon toga je započela cjelodnevna rasprava oko toga kako podijeliti neparne hrpe. Na kraju dana, kada su obje zaspale, njihova mama je potajno zamijenila sve hrpe oko kojih se nisu mogle dogovoriti tako da je na svakoj takvoj hrpi sada točno x_ix\_i bombončića.

Kako je priprema Hrvatske informatičke olimpijade za djevojke zahtjevnija nego što je očekivala, Iva nikad nije našla vremena za jesti bombončiće. Ali često bi pogledavala na stol i razmišljala koliko bi bombončića pojela kad bi pojela sve bombončiće od l_jl\_j-te do r_jr\_j-te hrpe. Pomozite joj odgovoriti na ta pitanja!

입력

U prvom retku su prirodni brojevi nn i qq (1≤n≤1051 ≤ n ≤ 10^5 i 1≤q≤1051 ≤ q ≤ 10^5), broj hrpa bombončića i broj događaja.

U drugom retku je n prirodnih brojeva a_ia\_i (1≤a_i≤2251 ≤ a\_i ≤ 2^{25}), broj bombončića na ii-toj hrpi.

Slijedi qq redaka koji opisuju događaje.

Prvi broj u retku opisa događaja je prirodan broj tt (1≤t≤21 ≤ t ≤ 2), tip događaja.

  • Za t=1t = 1 u istom retku slijede prirodni brojevi l_il\_i, r_ir\_i, x_ix\_i (1≤l_i≤r_i≤n1 ≤ l\_i ≤ r\_i ≤ n i 1≤x≤2251 ≤ x ≤ 2^{25}), koji označavaju da je Maja pitala Ivu da podijele bombončiće od l_il\_i-te do r_ir\_i-te hrpe, a x_ix\_i je broj bombončića na koji je njihova mama promijenila hrpe nakon što su zaspale.
  • Za t=2t = 2 u istom retku slijede prirodni brojevi l_il\_i, r_ir\_i (1≤l_i≤r_i≤n1 ≤ l\_i ≤ r\_i ≤ n), koji označavaju da se Iva upitala koliko ukupno ima bombončića od l_il\_i-te do r_ir\_i-te hrpe.

출력

Na svaki događaj tipa 22 u zaseban red odgovorite Ivi na njeno pitanje.

힌트

Pojašnjenje prvog probnog primjera: Ilustracija prikazuje kako se mijenjao broj bombončića na stolu nakon svake promjene.

예제4

  1. 예제 1

    입력
    7 5
    1 3 4 2 199 32 12
    2 5 7
    1 2 5 18
    2 3 7
    1 1 4 5
    2 1 4
    
    예상 출력
    243
    65
    20
    
  2. 예제 2

    입력
    8 12
    1 5 3 8 2 10 4 19
    2 3 8
    1 4 4 21
    1 5 5 1999
    1 8 8 20
    2 1 8
    1 1 1 64
    1 2 2 18
    1 1 1 64
    2 1 4
    1 1 1 64
    1 2 2 1999
    2 1 2
    
    예상 출력
    46
    48
    57
    25
    
  3. 예제 3

    입력
    8 9
    1 2 3 5 6 7 9 10
    1 1 6 19
    1 6 8 22
    2 4 8
    1 2 4 18
    1 2 5 199
    2 1 5
    1 1 8 1
    1 1 8 101
    2 1 8
    
    예상 출력
    71
    245
    808
    
  4. 예제 4

    입력
    6 13
    2 16 7 48 11 1024
    1 5 6 22
    1 1 4 8
    2 1 6
    1 3 6 111
    1 2 3 200
    2 2 6
    1 1 5 64
    1 1 6 101
    1 1 1 542
    2 1 6
    1 2 5 13
    1 3 4 22
    2 1 3
    
    예상 출력
    575
    285
    281
    51