首页 > 代码库 > (HDU)1008 -- Elevator(电梯)
(HDU)1008 -- Elevator(电梯)
问题描述 我们城市最高的建筑只有一部电梯。要求列表由N个正数组成。数字表示电梯将按指定的顺序停在哪个楼层。将电梯向上移动一层需要6秒,向下移动一层需要4秒。电梯将在每层停止时停留5秒钟。对于给定的请求列表,您将计算在列表上完成要求所花费的总时间。电梯在开始时在0楼,并且在满足要求时不必返回到底层。 输入 有多个测试用例。每个案例包含一个正整数N,后跟N个正数。输入中的所有数字都小于100. N = 0的测试用例表示输入结束。此测试用例不进行处理。 输出 在每个测试用例的单行上输出总时间。 样例输入 1 2 3 2 3 1 0 样例输出 17 41
简单的单步模拟一下过程就可以了,直接贴代码。
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 9 int n; 10 while(~scanf("%d",&n) && n) 11 { 12 int i,last=0,next,time=0; 13 for(i=1;i<=n;i++) 14 { 15 scanf("%d",&next); 16 if (next>last) time+=(next-last)*6; 17 else time+=(last-next)*4; 18 last = next; 19 time+=5; 20 } 21 printf("%d\n",time); 22 } 23 return 0; 24 }
记得要更新所在楼层的状态,以及每一种情况要初始化用时哦。
(HDU)1008 -- Elevator(电梯)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。