a106: pC 退化的三角形
標籤 :
通過比率 : 7人/8人 ( 88% ) [非即時]
評分方式:
Special

最近更新 : 2020-01-01 22:12

內容

現在在座標平面上有$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
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (100%): 1.0s , <50M
提示 :
標籤:
出處:
梗題大賽 [管理者:
giver (垃圾)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」