2011年10月13日 星期四

Gran Turismo 5

內容 :

最近,

籌錢買了一片 Gran Turismo 5 回家做賽車夢,

又另外買了 G27 方向盤,

但在賽車場上的表現始終不如人意。

"車,不是這麼開的。"

說完爸爸接過了方向盤,

將記錄一次又一次的刷新。

給你每一圈的時間紀錄,

請算出 Best Lap 與平均時間。

我一定要成為車神!

輸入說明 :

第一行有一個數字 N (0 < N ≤ 10)

代表接下來有 N 組測試資料

每組測試資料第一行有一個數字 M (0 < M ≤ 100)

接著有 M 行資料

每行兩個數字 A, B (0 ≤ A, B ≤ 60)

代表該圈所花費時間為 A 分 B 秒

輸出說明 :

Track X:

Best Lap: X minute(s) X second(s).

Average: X minute(s) X second(s).

Average 為整數,小數部份無條件捨去

詳請參考範例測資

範例輸入 :

3
4
1 54
2 02
1 58
1 50
3
1 23
1 42
1 37
5
3 00
2 56
3 04
2 50
3 01

範例輸出 :

Track 1:
Best Lap: 1 minute(s) 50 second(s).
Average: 1 minute(s) 56 second(s).

Track 2:
Best Lap: 1 minute(s) 23 second(s).
Average: 1 minute(s) 34 second(s).

Track 3:
Best Lap: 2 minute(s) 50 second(s).
Average: 2 minute(s) 58 second(s).

3 則留言:

  1. Dim Min
    Dim Average
    Dim Total
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, N
    For j = 1 To N
    Input #1, M
    Min = 0
    Total = 0

    For i = 1 To M
    Input #1, mm, s
    s = s + mm * 60
    If Min > s Or Min = 0 Then Min = s
    Total = Total + s
    Next i

    Average = Total \ M

    Print #2, "Track" & j & ":"
    Print #2, "Best Lap: " & Min \ 60 & " minute(s) " & Min Mod 60 & " second(s)."
    Print #2, "Average: " & Average \ 60 & " minute(s) " & Average Mod 60 & " second(s)."
    Print #2,

    Next j
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  2. Dim X, Y, Bst, Avg
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2

    Input #1, T

    For Ti = 1 To T
    Bst = 10000
    Avg = 0
    Input #1, t2
    For i = 1 To t2
    Input #1, X, Y
    Call A1(X, Y)
    Avg = Avg + Y
    If Y < Bst Then Bst = Y
    Next
    Avg = Avg / t2
    Print #2, "Track " & Ti & ":"
    Call A2(X, Bst)
    Print #2, "Best Lap: " & X & " minute(s) " & Bst & " second(s)."
    Call A2(X, Avg)
    Print #2, "Average: " & X & " minute(s) " & Avg & " second(s)."
    Next


    Close
    Close
    End
    End Sub


    Sub A1(a, b)
    b = b + (a * 60)
    End Sub

    Sub A2(a, b)
    a = b \ 60
    b = b Mod 60
    End Sub

    回覆刪除
  3. 佑好,
    1程式ok。

    arro好,
    1程式ok。
    2你設定初始的最快的秒數是10000,剛好數字的限制最長是61分,也就是3660秒,可以達成。但是,這樣子的設法,還是容易出錯的。保險的做法是用第一筆資料來當最初的最快秒數。(這也符合現實,當只有一次資料時,那次就是最好的。)

    回覆刪除