HDU 题址:http://acm.hdu.edu.cn/showproblem.php?pid=1008
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.
1 2 3 2 3 1 0
17 41
思路:乘电梯时,每上一层楼要花6秒时间,停一层要花5秒,每下一层楼要花4秒。
当now<=next时,说明在上楼,共花(next-now)*6+5时间,与sum累加可得当前共花的时间。
当now>next时,说明在下楼,共花(now-next)*4+5;时间,与sum累加可得当前共花的时间。
(注:输入的n数据表示之后共有几层楼层变动,每行都是默认从0层开始上楼的......)
AC代码:
#include<stdio.h>
int main()
{
intn,sum=0;
intnow=0,next;
scanf("%d",&n);
while(n)
{
scanf("%d",&next);
if(now<=next)
sum+=(next-now)*6+5;
elseif(now>next)
sum+=(now-next)*4+5;
now=next;
n--;
if(n==0)
{
printf("%d\n",sum);
scanf("%d",&n);sum=0;now=0;continue;
}
}
return0;
}