- Time limit: 1.00 s
- Memory limit: 512 MB
Murtoviiva muodostuu pisteistä p_1,p_2,\dots,p_n, jossa jokaisen kahden peräkkäisen pisteen välillä on jana.
Sinulle annetaan joukko murtoviivoja, ja tehtäväsi on selvittää jokaisesta murtoviivasta, voiko sen esittää funktiona pyörittämällä kuviota. Tämä tarkoittaa, ettei mikään pystysuora viiva leikkaa kuviota kahdesta kohdasta.
Syöte
Syötteen ensimmäisellä rivillä on kokonaisluku t: murtoviivojen määrä. Tämän jälkeen jokainen murtoviiva kuvataan seuraavasti:
Ensimmäisellä rivillä on kokonaisluku n: pisteiden määrä. Tämän jälkeen on n riviä, joista jokaisella on kaksi kokonaislukua x ja y. Mitkään kaksi peräkkäistä pistettä eivät ole samat, eivätkä mitkään kolme peräkkäistä pistettä ole samalla suoralla.
Tuloste
Tulosta jokaisesta murtoviivasta YES
, jos sen voi esittää funktiona, ja NO
muuten.
Esimerkki
Syöte:
2 4 0 0 2 1 3 -1 2 -2 4 0 0 2 1 3 -1 2 0
Tuloste:
YES NO
Osatehtävä 1 (45 pistettä)
- 1 \le t \le 100
- 2 \le n \le 1000
- -100 \le x,y \le 100
Osatehtävä 2 (55 pistettä)
- 1 \le t \le 100
- 2 \le n \le 10^6
- \sum n \le 10^6
- -10^9 \le x,y \le 10^9