电梯 HDU – 1008

我们城市最高的建筑只有一部电梯。请求列表由N个正数组成。数字表示电梯将以指定顺序停在哪些楼层。将电梯向上移动一层需要6秒钟,向下移动一层楼需要4秒钟。电梯将在每个站点停留5秒钟。 

对于给定的请求列表,您将计算在列表上完成请求所花费的总时间。电梯在开始时位于0楼,并且在满足要求时不必返回到底层。 
输入有多个测试用例。每个案例包含一个正整数N,后跟N个正数。输入中的所有数字都小于100. N = 0的测试用例表示输入结束。不处理此测试用例。 
产量为每个测试用例打印一行的总时间。 
样本输入

1 2
3 2 3 1
0

样本输出

17 41

模拟法的应用
#include<stdio.h>
int main(){
	int n;
	int i;
	int time = 0;
	while(scanf("%d",&n)&&n!=0)
	{
		int a;//上升到的楼层 
		int nowstay = 0;//从第0层开始 
	int m;
		scanf("%d",&m);//第一个要到达的楼层
	time = m * 6 + n * 5;//顺便把所有楼层的停留时间都计算了 
		nowstay = m;
		for(i=1;i<n;i++)
			{
			scanf("%d",&a);
			time += (a-nowstay)>0 ?(a-nowstay)*6 :(nowstay-a)*4;
			nowstay=a; 
				
			}
		printf("%d
",time);
		
	}
	return 0;
	
} 
原文地址:https://www.cnblogs.com/ygbrsf/p/12927339.html