【問題E11】平面上的直線 共有多少個交點。 [回前頁]
在平面上畫直線,兩條直線之間有幾種關係:
1.重疊:
例如 x+y=1 與 2x+2y=2
2.平行:
例如 x+y=1 與 x+y=2
3.相交:
例如 x+y=1 與 x-y=1 交於點(1,0)
對於相交的直線,會有一個交點,很多直線可能交在同一個點上,例如 x+y=1 與 x-y=1 與 x+2y=1 均交於點 (1,0)
給定一些平面上的直線(不超過 256 條),請寫一個程式算出它們「相交」所產生的相異交點數量。
提示:在此題中,重疊的兩直線之交點數目定義為0。因此您可以適當的選擇不要處理它們。
輸入檔說明
輸入檔是由許多組平面上的直線組成的。每一組資料的第一行會有一個整數 N
(1 <= N <= 256),以下的 N 行每行各代表一條直線,它由三個整數a b c 組成,代表直線 ax+by=c
這三個整數都介在 -1000 到 1000 之間,而且 a 和 b 不會同時為 0
輸入檔的最後一行會有一個單獨的 0,這筆資料不用處理。
輸出檔說明
對每一組輸入檔內要處理的資料,輸出一行內含一個整數,代表資料內的直線相交所產生的相異交點數量。
輸入
3
1 1 1
1 -1 1
1 2 1
2
1 1 1
2 2 2
0
輸出
1
0