內容 :
黑暗大陸的野人們突然四散開來,然後一瞬間大家都停了下來,靜止不動。部落首領走了出來,告訴努曼諾爾人這些野人們的座標位置,要求努曼諾爾人選出其中三個,而選中的那三個野人所圍出來的土地就送給努曼諾爾人。現在,請從首領提供的座標資訊回答:最大的三角形土地面積可以是多少。若三個點的座標為 (a,b), (c,d), (e,f),則這三個點圍成的三角形面積為:
| 0.5*(ad+cf+be-bc-de-af) |
輸入說明 :
有多組測試資料,以EOF結尾。
輸入的第一行是一個正整數N (3<=N<=200),表示平面上有多少野人。接下來有N行,每行兩個整數,其中第k行代表第k個野人所在的座標 (Xk,Yk)。
輸出說明 :
輸出可以取得的最大三角形土地面積,請四捨五入到小數點後兩位。
範例輸入 :
4
0 0
0 1
1 0
1 1
3
1 1
5 3
2 9
範例輸出 :
0.50
15.00
Dim xx(200) As Integer
回覆刪除Dim yy(200) As Integer
Public Sub Form_Load()
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Do Until EOF(1)
Input #1, n
sumx = 0: sumy = 0
For i = 1 To n
Input #1, x, y
sumx = sumx + x
sumy = sumy = y
xx(i) = x
yy(i) = y
Next i
sumx = sumx \ n
sumy = sumy \ n
For i = 1 To n - 1
For j = i + 1 To n
k = (sumx - xx(i)) ^ 2 + (sumy - yy(i)) ^ 2
kk = (sumx - xx(j)) ^ 2 + (sumy - yy(j)) ^ 2
If kk > k Then
st = xx(i): xx(i) = xx(j): xx(j) = st
st = yy(i): yy(i) = yy(j): yy(j) = st
End If
Next j
Next i
ans = Abs(0.5 * (xx(1) * yy(2) + xx(2) * yy(3) + xx(3) * yy(1) - yy(1) * xx(2) - yy(2) * xx(3) - xx(1) * yy(3)))
Print Format(ans, "0.00")
Loop
Close #2
Close #1
End Sub
BY阿揚
似乎OK小白的呢?
回覆刪除