- Time limit: 1.00 s
- Memory limit: 512 MB
Tehtäväsi on muodostaa ryhmiä lapsista. Jokainen lapsi on ilmoittanut, montako lasta saa olla vähintään ja enintään hänen ryhmässään. Tietty lapsi voi kuulua enintään yhteen ryhmään.
Sinun tulee käsitellä useita testejä, joissa lasten toiveet omat samat mutta muodostettavat ryhmät eroavat. Osa lapsista voi jäädä ryhmien ulkopuolelle, kunhan kaikki ryhmät saadaan muodostettua.
Syöte
Ensimmäisellä rivillä on kaksi kokonaislukua n ja t: lasten määrä sekä testien määrä.
Seuraavaksi tulee n riviä, jotka kuvaavat lasten toiveet. Jokainen rivi sisältää kaksi kokonaislukua a ja b: lapsi haluaa kuulua ryhmään, jossa on vähintään a ja enintään b lasta.
Lopuksi tulee t testiä. Jokaisen testin ensimmäinen rivi sisältää ryhmien määrän m ja toinen rivi sisältää m kokonaislukua k_1,k_2,\dots,k_m: ryhmien halutut koot.
Voit olettaa, että 1 \le a \le b \le n ja 1 \le k_i \le n.
Tuloste
Tulosta jokaisessa testissä YES
, jos kaikki ryhmät voidaan muodostaa, ja NO
muuten.
Esimerkki
Syöte:
5 3 2 4 1 5 3 5 4 4 3 5 1 3 2 1 2 2 1 4
Tuloste:
YES NO YES
Tässä tapauksessa lasten toiveet ovat seuraavat:
- Lapsi 1 haluaa ryhmään, jonka koko on 2 \dots 4
- Lapsi 2 haluaa ryhmään, jonka koko on 1 \dots 5
- Lapsi 3 haluaa ryhmään, jonka koko on 3 \dots 5
- Lapsi 4 haluaa ryhmään, jonka koko on 4
- Lapsi 5 haluaa ryhmään, jonka koko on 3 \dots 5
Ensimmäisessä testissä tulee muodostaa yksi ryhmä, jossa on kolme lasta. Tämä ryhmä voidaan muodostaa esimerkiksi valitsemalla kolme ensimmäistä lasta.
Toisessa testissä tulee muodostaa kaksi ryhmää, joissa on yksi ja kaksi lasta. Tämä ei ole mahdollista.
Kolmannessa testissä tulee muodostaa kaksi ryhmää, joissa on yksi ja neljä lasta. Tässä lapsi 2 voi muodostaa yksin ryhmän ja kaikki muut lapset muodostavat toisen ryhmän.
Osatehtävä 1 (10 pistettä)
- 1 \le n, t, m \le 100
Osatehtävä 2 (15 pistettä)
- 1 \le n, t, m \le 1000
Osatehtävä 3 (75 pistettä)
- 1 \le n, t \le 10^5
- Kaikkien m-arvojen summa on enintään 10^5