Poed | 프로그래밍의 벗 PivotOJ
PivotOJ

Poed

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2020-21 sel2BOJ 29909

문제

Ühel tänaval on NN rõivapoodi, mis on nummerdatud 1N1 \ldots N. Kõik poed müüvad ülikondi ja poes number ii on ülikonna alghind AiA_i. Seejuures on tänava alguses kallimad poed ja tänavat mööda edasi liikudes on igas järgmises poes ülikonna hind kas eelmisega sama või sellest väiksem.

Seejärel hakkab toimuma kahte tüüpi sündmusi:

  1. Poed 1,2,,X1, 2, \ldots, X tulevad välja uute kollektsioonidega ja võivad hindu tõsta; täpsemalt asendatakse iga 1iX1 \le i \le X korral Ai:=max(Ai,Y)A_i := \max(A_i, Y).
  2. Edev mees käib poodides X,X+1,,NX, X+1, \ldots, N. Poeskäiku alustades on tal YY raha. Kui tal on poodi ii sisendes alles vähemalt AiA_i raha, siis ostab ta sealt ühe ülikonna ja tema rahavaru kahaneb AiA_i võrra.

Kirjutada programm, mis leiab iga 2. tüüpi sündmuse kohta, mitu ülikonda mees kokku ostab.

입력

Esimesel real on poodide arv NN (1N1051 \le N \le 10^5) ja sündmuste arv QQ (1Q1051 \le Q \le 10^5).

Teisel real on NN täisarvu AiA_i (1Ai1091 \le A_i \le 10^9). On teada, et A1A2ANA_1 \ge A_2 \ge \cdots \ge A_N.

Järgmisel QQ real on igaühel kolm täisarvu: sündmuse tüüp TT (1T21 \le T \le 2) ning selle parameetrid XX ja YY (1XN1 \le X \le N, 1Y1091 \le Y \le 10^9). On teada, et vähemalt üks sündmus on 2. tüüpi.

출력

Väljastada üks rida iga 2. tüüpi sündmuse kohta; igale reale väljastada ostetud ülikondade arv.

예제

예제 1

입력
10 6
10 10 10 6 6 5 5 5 3 1
2 3 50
2 4 10
1 3 10
2 2 36
1 4 7
2 2 17
출력
8
3
6
2
코드를 제출하려면 로그인하세요.