程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> HDU 4505 小Q系列故事——電梯裡的愛情

HDU 4505 小Q系列故事——電梯裡的愛情

編輯:關於C語言

小Q系列故事——電梯裡的愛情

Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)

Problem Description   細心的同事發現,小Q最近喜歡乘電梯上上下下,究其原因,也許只有小Q自己知道:在電梯裡經常可以遇到他心中的女神HR。
  電梯其實是個很暧昧的地方,只有在電梯裡,小Q才有勇氣如此近距離接近女神,雖然覺得有點不自在,但次數多了,女神也習慣了小Q的存在,甚至熟悉到仿佛不說上句話自己也都覺得不合適了。可是,他們的談話也僅僅限於今天天氣不錯啊或是你吃了嗎之類的,往往在對方微笑點頭後就再次陷入難堪的沉默之中。 於是,小Q便在陪伴女神的同時,也關注著電梯中顯示的樓層數字,並且他注意到電梯每向上運行一層需要6秒鐘,向下運行一層需要4秒鐘,每開門一次需要5秒(如果有人到達才開門),並且每下一個人需要加1秒。
  特別指出,電梯最開始在0層,並且最後必須再回到0層才算一趟任務結束。假設在開始的時候已知電梯內的每個人要去的樓層,你能計算出完成本趟任務需要的總時間嗎?
  這是個很簡單的問題,要知道,小Q已經修煉到快速心算出結果的境界,現在你來編程試試吧!
Input 輸入首先包含一個正整數C,表示有C組測試用例。
接下來C行每行包含一組數據,每組數據首先是一個正整數N,表示本次乘坐電梯的人數,然後是N個正整數Ai,分別表示大家要去的樓層。

[Technical Specification]
C<=100
N<=15
Ai<=100

Output 請計算並輸出完成一趟任務需要的時間,每組數據輸出占一行。
Sample Input
2
4 2 4 3 2 
3 10 10 10

Sample Output
59
108
以前也看過這個題,但是沒做。今天又見到,我決定AC它。仔細分析後,發現這題其實很簡單的,只需用一個cnt數組記錄每層樓下幾個人,那麼在每個樓層消耗的時間就能算出來,最後加上電梯上去和下來的時間即可。
#include
#include
int main()
{
    int a, i, c, n, cnt[105];
    scanf("%d",&c);
    while(c--)
    {
        scanf("%d",&n);
        memset(cnt, 0, sizeof(cnt));
        int Max = 0;
        for(i = 0; i < n; i++)
        {
            scanf("%d",&a);
            cnt[a]++;
            if(a > Max)
                Max = a;
        }
        int ans = Max * 10;  //不考慮上下人時,上去和下來的時間
        for(i = 1; i <= Max; i++)
        {
            if(cnt[i])
                ans += 5 + cnt[i]; //開門時間和下人時間
        }
        printf("%d\n",ans);
    }
    return 0;
}




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved