- Time limit: 1.00 s
- Memory limit: 512 MB
Annettuna on lista, jossa on n positiivista kokonaislukua järjestyksessä pienimmästä suurimpaan. Tehtäväsi on käsitellä q kyselyä, joista jokainen liittyy tietyssä listan osassa oleviin lukuihin.
Jokaisessa kyselyssä sinun tulee ilmoittaa, montako paria luvuista voidaan muodostaa enintään niin, että jokaisessa parissa oikea luku on vähintään kaksinkertainen vasempaan lukuun verrattuna. Kukin luku saa kuulua enintään yhteen pariin.
Syöte
Ensimmäisellä rivillä on kaksi kokonaislukua n ja q.
Toisella rivillä on n kokonaislukua x_1,x_2,\dots,x_n: listan sisältö. Listan luvut ovat järjestyksessä pienimmästä suurimpaan.
Lopuksi tulee q riviä, jotka kuvaavat kyselyt. Jokaisella rivillä on kaksi kokonaislukua a ja b: listan osa alkaa kohdasta a ja päättyy kohtaan b.
Tuloste
Tulosta jokaisen kyselyksen vastauksena, montako paria luvuista voidaan muodostaa enintään.
Esimerkki
Syöte:
8 4 1 2 2 4 7 8 8 8 1 4 2 3 4 8 1 8
Tuloste:
2 0 1 4
Selitys:
- Listasta [1,2,2,4] voidaan muodostaa kaksi paria (1,2) ja (2,4).
- Listasta [2,2] ei voida muodostaa yhtään paria.
- Listasta [4,7,8,8,8] voidaan muodostaa yksi pari (4,8).
- Listasta [1,2,2,4,7,8,8,8] voidaan muodostaa neljä paria (1,7), (2,8), (2,8) ja (4,8).
Osatehtävä 1 (16 pistettä)
- 1 \le n \le 2 \cdot 10^5
- 1 \le q \le 1000
- 1 \le x_i \le 100
Osatehtävä 2 (42 pistettä)
- 1 \le n \le 2 \cdot 10^5
- 1 \le q \le 2 \cdot 10^5
- 1 \le x_i \le 100
Osatehtävä 3 (42 pistettä)
- 1 \le n \le 2 \cdot 10^5
- 1 \le q \le 2 \cdot 10^5
- 1 \le x_i \le 10^9
