CSES - Datatähti 2019 loppu - Funktio
  • 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$