CSES - Putka Open 2020 – 3/5 - Kyselyt
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Taulukossa on n kokonaislukua, jotka on indeksoitu 1:stä alkaen. Taulukkoa voi muuttaa tekemällä yhden tai useamman operaation, jossa valitaan yksi taulukon alkio ja kasvatetaan sitä yhdellä.

Tehtäväsi on vastata q kyselyyn muotoa: kun tarkastellaan välin [a,b] alitaulukkoa, mikä on pienin operaatioiden määrä, joiden jälkeen se on kasvava (eli jokainen alkio on yhtä suuri tai suurempi kuin edellinen alkio)?

Syöte

Syötteen ensimmäisellä rivillä on kaksi kokonaislukua n ja q: taulukon koko ja kyselyiden määrä.

Seuraavalla rivillä on n kokonaislukua x_1,x_2,\dots,x_n: taulukon sisältö.

Lopuksi on q riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua a ja b: välin alku- ja loppukohta.

Tuloste

Tulosta jokaisesta kyselystä pienin muutosten määrä.

Esimerkki

Syöte:

5 3
2 10 4 2 5
3 5
2 2
1 4

Tuloste:

2
0
14

Selitys: Ensimmäisessä kyselyssä alitaulukko on [4,2,5] ja riittää 2 operaatiota, joiden avulla saadaan alitaulukko [4,4,5]. Toisessa kyselyssä alitaulukko on [10]. Kolmannessa kyselyssä alitaulukko on [2,10,4,2].

Osatehtävä 1 (12 pistettä)

  • 1 \le n,q \le 100
  • 1 \le x_i \le 100
  • 1 \le a \le b \le n

Osatehtävä 2 (34 pistettä)

  • 1 \le n,q \le 2\cdot10^5
  • 1 \le x_i \le 100
  • 1 \le a \le b \le n

Osatehtävä 3 (54 pistettä)

  • 1 \le n,q \le 2\cdot10^5
  • 1 \le x_i \le 10^9
  • 1 \le a \le b \le n