2011年8月17日 星期三

d985: 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).

程式碼 :
#include<stdio.h>

int main()
{
    int i,j,A,B,N,M,best_m,best_s,avg_m,avg_s;
    
    scanf("%d",&N);
    N++;
    for(i=1; i<N; i++)
    {
        scanf("%d",&M);
                
        avg_m = avg_s = 0;
        best_m = best_s = 70;
        
        for(j=0; j<M; j++)
        {
            scanf("%d %d",&A,&B); 
                       
            avg_m += A;
            avg_s += B;    
                    
            if((A < best_m) || ((best_m==A) && (best_s>B)))
            {
                best_m = A;
                best_s = B;
            }
        }
        
        avg_s = (avg_m*60 + avg_s)/M;
        avg_m = avg_s / 60;
        avg_s = avg_s % 60;
        
        printf("Track %d:\n",i);
        printf("Best Lap: %d minute(s) %d second(s).\n",best_m,best_s);
        printf("Average: %d minute(s) %d second(s).\n",avg_m,avg_s);
    }    
    return 0;
}






http://zerojudge.tw/ShowProblem?problemid=d985

沒有留言:

張貼留言