hdu 1861 hdoj 1861

遊船出租

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5448    Accepted Submission(s): 1807


Problem Description
現有公園遊船租賃處請你編寫一個租船管理系統。當遊客租船時,管理員輸入船號並按下S鍵,系統開始計時;當遊客還船時,管理員輸入船號並按下E鍵,系統結束計時。船號爲不超過100的正整數。當管理員將0作爲船號輸入時,表示一天租船工作結束,系統應輸出當天的遊客租船次數和
平均租船時間。
注意:由於線路偶爾會有故障,可能出現不完整的紀錄,即只有租船沒有還船,或者只有還船沒有租船的紀錄,系統應能自動忽略這種無效紀錄。
 

Input
測試輸入包含若干測試用例,每個測試用例爲一整天的租船紀錄,格式爲
船號(1~100) 鍵值(S或E) 發生時間(小時:分鐘)
每一天的紀錄保證按時間遞增的順序給出。當讀到船號爲-1時,全部輸入結束,相應的結果不要輸出。
 

Output
對每個測試用例輸出1行,即當天的遊客租船次數和平均租船時間(以分鐘爲單位的精確到個位的整數時間)。
 

Sample Input
1 S 08:10 2 S 08:35 1 E 10:00 2 E 13:16 0 S 17:00 0 S 17:00 3 E 08:10 1 S 08:20 2 S 09:00 1 E 09:20 0 E 17:00 -1
 

Sample Output
2 196 0 0 1 60
 
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
    int m,n,totaltime,num,hour,min,hash[101];
    char judge;
    for(int i=0;i<101;i++){
        hash[i]=-1;
    }
    totaltime=0,num=0;
    while(cin>>n,n!=-1){

        cin>>judge;
        scanf("%d:%d",&hour,&min);
        if(judge=='S'&&n!=0&&hash[n]==-1){
            hash[n]=hour*60+min;
        }
        else if(judge=='E'&&hash[n]!=-1&&n!=0){
            totaltime+=hour*60+min-hash[n];
            hash[n]=-1;
            num++;
        }
        if(n==0){
            for(int i=0;i<101;i++){
                hash[i]=-1;
            }
            if(num!=0&&totaltime%num!=0) cout<<num<<' '<<totaltime/num+1<<endl;
            else if(num!=0) cout<<num<<' '<<totaltime/num<<endl;
            else cout<<0<<' '<<0<<endl;
            totaltime=0,num=0;
        }
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章