SDAU 1006

来源:互联网 发布:linux 获取文件行数 编辑:程序博客网 时间:2024/05/18 04:57
Problem Description
The highest building in our city hasonly one elevator. A request list is made up with N positivenumbers. The numbers denote at which floors the elevator will stop,in specified order. It costs 6 seconds to move the elevator up onefloor, and 4 seconds to move down one floor. The elevator will stayfor 5 seconds at each stop.

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

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

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

Sample Input
1 2
3 2 31
0
 

Sample Output
17
41

题目大意:

模拟电梯,上升一层 6s ,下降一层 4 s ,在一层停留需要 5 s,也就是每个数据都需要停留(注意这里)。

思路:

挺简单的。


AC代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
    intN,i;
   //freopen("r.txt", "r", stdin);
   while(cin>>N)
    {
       if(N==0) break;
       int thecase=0,t,time=0;
       for(i=0;i
       {
           cin>>t;
           if(t>thecase)
           {
               time+=6*(t-thecase);
               time+=5;
               thecase=t;
           }
           else if(t
           {
               time+=4*(thecase-t);
               time+=5;
               thecase=t;
           }
           else if(t==thecase)
           {
               time+=5;
           }
       }
       cout<<time<<endl;
    }
}

 
0 0
原创粉丝点击