Elevator |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 4333 Accepted Submission(s): 2170 |
|
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.
|
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 23 2 3 10
|
Sample Output 1741
|
题目大意
这是一个关于电梯的问题。电梯每次都是从0层开始,向上每一层花的时间6,向下每一层花的时间为4,电梯在每一层需要停止的楼层会停留5,求经过所有需要停留的楼层之后所用的总时间。
注意事项
结束的时间并不是电梯到达最后一个需要停留的楼层的时候,还需要再加上在最后一个需要停留的楼层停留所用的时间5.
代码
<span style="font-size:18px;">#include<stdio.h> int s[110]; int main() { int n; int i,j,k,sum; while(scanf("%d",&n),n) { for(i=0;i<n;i++) scanf("%d",&s[i]); sum=n*5; j=0; for(i=0;i<n;i++) { if(s[i]>j) sum+=(s[i]-j)*6; else if(s[i]<j) sum+=(j-s[i])*4; j=s[i]; } printf("%d\n",sum); } return 0; } </span>