hdu 1008 Elevator

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1008

Elevator

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 58612    Accepted Submission(s): 32147


Problem Description
The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 seconds to move down one floor. The elevator will stay for 5 seconds at each stop.

For a given request list, you are to compute the total time spent to fulfill the requests on the list. The elevator is on the 0th floor at the beginning and does not have to return to the ground floor when the requests are fulfilled.
 

Input
There are multiple test cases. Each case contains a positive integer N, followed by N positive numbers. All the numbers in the input are less than 100. A test case with N = 0 denotes the end of input. This test case is not to be processed.
 

Output
Print the total time on a single line for each test case.
 

Sample Input
   
   
   
   
1 2 3 2 3 1 0
 

Sample Output
   
   
   
   
17 41
 

Author
ZHENG, Jianqiang
 

Source
ZJCPC2004
 

Recommend
JGShining   |   We have carefully selected several similar problems for you:  1049 1071 1170 1007 1106 

题目大意:一栋大楼内部只有一部电梯,有n个人想乘坐电梯,然后输入这n个人所在大楼的层数,最后求出将所有人送达的总时间。
特别注意:1、电梯初始状态在第0层,将所有人送达之后不需要回到第0层。
    2、电梯上一层需要6s的时间,下一层需要4s的时间,停留一次需要5s的时间

详见代码。
<span style="font-size:14px;">#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int n;
    int a,floor,s;
    while (~scanf("%d",&n))
    {
        floor=0;
        s=0;
        if (n==0)
            break;
        while (n--)
        {
            scanf("%d",&a);
            if (a>floor)
            {
                s+=(a-floor)*6;
                s+=5;
                floor=a;
            }
            else if (a<=floor)
            {
                s+=(floor-a)*4;
                s+=5;
                floor=a;
            }
        }
        printf ("%d\n",s);
    }
    return 0;
}
</span>



 

你可能感兴趣的:(C语言)