Marslaste õunaaed | 프로그래밍의 벗 PivotOJ
PivotOJ

Marslaste õunaaed

시간 제한: 2000ms메모리 제한: 1024MB출처: EIO 2018-19 sel1BOJ 29951

문제

Zaqquat peab Marsil õunaaeda, kus kasvab NN õunapuud. Puud on pikas sirges reas ja nummerdatud 1N1 \ldots N.

Marsi õunad küpsevad järgmiste reeglite kohaselt:

  • Aasta alguses on puu number ii õunte küpsus ZiZ_i.
  • Mingitel hetkedel aasta jooksul küpsevad kõik õunad küpsusega XX ühe astme võrra, saades uueks küpsuseks X+1X + 1.

Aeg-ajalt tahab Zaqquat teada, kui palju on õunapuude LL kuni RR hulgas selliseid, mille õunte küpsus ei ületa YY.

Kirjutada programm, mis modelleerib õunte küpsemist ja vastab Zaqquati päringutele.

입력

Faili esimesel real on õunapuude arv NN (1N5000001 \le N \le 500\,000) ja sündmuste arv QQ (1Q5000001 \le Q \le 500\,000).

Faili teisel real on NN tühikutega eraldatud täisarvu ZiZ_i (1Zi10000001 \le Z_i \le 1\,000\,000): õunte küpsused aasta algul.

Järgmisel QQ real on igaühel ühe sündmuse kirjeldus. Rea alguses on sündmuse tüüp TT:

  • Kui T=1T = 1, on real lisaks veel täisarv XX (1X15000001 \le X \le 1\,500\,000), mis näitab, et õunad küpsusega XX saavad uueks küpsuseks X+1X + 1.
  • Kui T=2T = 2, on real lisaks veel kolm täisarvu LL, RR ja YY (1LRN1 \le L \le R \le N, 1Y15000001 \le Y \le 1\,500\,000), mis näitavad, et Zaqquat tahab teada, kui palju on õunapuude LL kuni RR (mõlemad kaasa arvatud) hulgas selliseid, millel olevate õunte küpsus on maksimaalselt YY.

Sündmused on failis nende toimumise kronoloogilises järjekorras.

출력

Faili väljastada iga teist tüüpi sündmuse kohta vastus Zaqquati küsimusele. Vastused väljastada igaüks eraldi reale küsimuste kronoloogilises järjekorras.

예제

예제 1

입력
7 9
4 1 2 1 4 4 7
2 1 4 1
1 1
2 1 3 1
1 1
1 2
2 3 5 3
2 3 5 2
1 4
2 2 6 4
출력
2
0
2
0
3
코드를 제출하려면 로그인하세요.