CSES - Datatähti 2019 loppu - Funktio
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Murtoviiva muodostuu pisteistä p1,p2,,pnp_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 tt: murtoviivojen määrä. Tämän jälkeen jokainen murtoviiva kuvataan seuraavasti:

Ensimmäisellä rivillä on kokonaisluku nn: pisteiden määrä. Tämän jälkeen on nn riviä, joista jokaisella on kaksi kokonaislukua xx ja yy. 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ä)

  • 1t1001 \le t \le 100
  • 2n10002 \le n \le 1000
  • 100x,y100-100 \le x,y \le 100

Osatehtävä 2 (55 pistettä)

  • 1t1001 \le t \le 100
  • 2n1062 \le n \le 10^6
  • n106\sum n \le 10^6
  • 109x,y109-10^9 \le x,y \le 10^9