Processing math: 100%


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

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

內容

現在在座標平面上有n的點,小白將這些點隨意地分成三個三個一組,並將每一組的三個點連接形成一個三角形。然而就在他費盡千辛萬苦地將這些線連接完後,他卻發現三角形的數量比預期的還少很多,仔細一看才發現原來這n個點中有87%的點共線,因此他的努力全都白費了。為了避免再次發生這樣的情況,小白想請你幫忙寫一個程式判斷平面上的n個點中,是否存在一條直線通過一半以上的點?

輸入說明

第一行有一個正整數T代表測資筆數。

每筆測資第一行有一個正整數n

接下來有n行每行兩個整數xi,yi為第i個點的座標。

T50,n105,109xi,yi109

保證n為偶數,且所有點座標相異。

輸出說明

如果存在一條直線上有多於一半(包含一半)的點就於第一行輸出"yes"(不含引號),並於第二行輸出三個整數a,b,c代表該直線為ax+by+c=0,若存在多條符合答案的解可以任選一條直線輸出,輸出時須符合|a|,|b|2×109,|c|4×1018,否則可能會得到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 (垃圾)
]


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