1.题目编号
1006 problemG
2.简单题意
关于坐电梯的题目,电梯上行要六秒,下行要四秒,在停止时停留五秒,输入要停的次数,然后输入每次要停的楼层,电梯按输入顺序运行,电梯从0楼开始运行,计算送完最后一个人所用的时间。
3.解题思路
定义vector来存放要停的楼层编号,使用while和if语句来进行累加
4.感想
没用到贪心算法,就是简单的加乘运算
5.代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int n;
while ( cin >> n)
{
if (n == 0)
break;
else
{
int t;
for (int i=0; i<n; i++)
{
cin >> t;
v.push_back(t);
}
int times = 0;
int floor = 0;
for (int j=0; j<n; j++)
{
if ((v[j] - floor) > 0)
{
times += (v[j] - floor) * 6 ;
floor = v[j];
}
else
{
times += (floor - v[j]) * 4;
floor = v[j];
}
}
cout << times + n * 5 << endl;
v.clear();
}
}
return 0;
}