电梯升降
2016-12-25 11:42
155 查看
【题目描述】
某城市最高的建筑只有一部电梯。一份电梯升降任务表由N个正整数组成,这些数字表示电梯按照给定的顺序停留的楼层号。
电梯升一层花费6秒钟,降一层花费4秒钟,并且每次停留花费5秒钟。
对于每一份任务表,你要计算出完成全部升降任务所花费的总时间。一开始,电梯在第0层,并且最终完成任务时电梯不必一定返回到0层。
【输入格式】
有多组测试样例。每组测试样例包含一个正整数N,接下来是N个正整数。
在输入中,所有的数字都小于100。当N=0时,表示输入结束。
【输出格式】
对于每一组测试样例,在一行中输出总时间。
【样例输入】
1 2
3 2 3 1
0
【样例输出】
17
41
【分析】
模拟即可。
某城市最高的建筑只有一部电梯。一份电梯升降任务表由N个正整数组成,这些数字表示电梯按照给定的顺序停留的楼层号。
电梯升一层花费6秒钟,降一层花费4秒钟,并且每次停留花费5秒钟。
对于每一份任务表,你要计算出完成全部升降任务所花费的总时间。一开始,电梯在第0层,并且最终完成任务时电梯不必一定返回到0层。
【输入格式】
有多组测试样例。每组测试样例包含一个正整数N,接下来是N个正整数。
在输入中,所有的数字都小于100。当N=0时,表示输入结束。
【输出格式】
对于每一组测试样例,在一行中输出总时间。
【样例输入】
1 2
3 2 3 1
0
【样例输出】
17
41
【分析】
模拟即可。
#include<cstdio> int main(){ int n,a; while(~scanf("%d",&n) && n){ int sum=0,temp=0; while(n--){ scanf("%d",&a); if(temp<a) {sum+=(a-temp)*6+5;temp=a;} else if (temp>a) {sum+=(temp-a)*4+5;temp=a;} else {sum+=5;temp=a;} } printf("%d\n",sum); } }
相关文章推荐