您的位置:首页 > 其它

杭电acm——1008电梯问题

2016-07-18 08:17 323 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1008

问题分析:输入第一行n代表有几组数,输入第二行m代表电梯要停几层,随后跟着输入m个数代表要电梯停的楼层

每上一层楼电梯要用6分钟,每下一层楼电梯要用4分钟,在楼层中停要用5分钟

可以发现:只要比较相邻两个数,只要前者小于后者就表示电梯上升,所用时间=(后者-前者)*6;只要前者大于后者就表示电梯下降,所有时间=(前者-后者)*4;而电梯停止所用的时间=m*5;千万不要忘记加上电梯到第一个楼层所用的时间=a[1]*6;再将所有时间加起来就等于所要求得时间。

#include <iostream>
using namespace std;
int main()
{
int n,a[100],i,s,x,y;
while(cin>>n&&n!=0)
{
for(i=1;i<=n;i++)
{
cin>>a[i];
}
s=x=0;
for(i=1;i<n;i++)
{
if(a[i]<a[i+1])
s+=(a[i+1]-a[i])*6;
if(a[i]>a[i+1])
x+=(a[i]-a[i+1])*4;
}
y=(n*5)+s+x+a[1]*6;
cout<<y<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: