現在在座標平面上有$n$的點,小白將這些點隨意地分成三個三個一組,並將每一組的三個點連接形成一個三角形。然而就在他費盡千辛萬苦地將這些線連接完後,他卻發現三角形的數量比預期的還少很多,仔細一看才發現原來這$n$個點中有87%的點共線,因此他的努力全都白費了。為了避免再次發生這樣的情況,小白想請你幫忙寫一個程式判斷平面上的$n$個點中,是否存在一條直線通過一半以上的點?
第一行有一個正整數$T$代表測資筆數。
每筆測資第一行有一個正整數$n$。
接下來有$n$行每行兩個整數$x_i,y_i$為第$i$個點的座標。
$T\le 50$,$n\le10^5$,$-10^9\le x_i,y_i\le10^9$
保證$n$為偶數,且所有點座標相異。
如果存在一條直線上有多於一半(包含一半)的點就於第一行輸出"yes"(不含引號),並於第二行輸出三個整數$a,b,c$代表該直線為$ax+by+c=0$,若存在多條符合答案的解可以任選一條直線輸出,輸出時須符合$|a|,|b|\le2\times10^9,|c|\le4\times10^{18}$,否則可能會得到WA。若不存在符合條件的直線就輸出一行"no"(不含引號)。
4 4 0 0 0 1 1 0 1 1 4 0 0 0 1 1 0 1 1 6 0 0 0 2 1 1 1 0 1 2 1 -2 6 0 0 0 2 1 1 3 0 -1 -2 -4 -3
yes 1 -1 0 yes 0 1 -1 yes 1 0 -1 no
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |