1 题目编号:1006 problemG
2 题目内容:
For a given request list, you are to compute the total time spent to fulfill the requests on the list. The elevator is on the 0th floor at the beginning and does not have to return to the ground floor when the requests are fulfilled.
1 2 3 2 3 1 0
17 41
3 解题思路形成过程:
此题我认为最重要的是正确理解题意。此题我一共有3种理解,一为第一次升降电梯后其始点变为第一次结束时的楼层,此后以此类推结果证明是错误的。二为同一楼层时不会耗费时间,结果证明有是错误的,三即正确思路了。同一楼层也会消耗5min,
4 感想:认真想,画画过程图,即可模拟出过程。
5 代码:
#include<iostream>
#include<stdlib.h>
//#include<algorithm>
using namespace std;
int main()
{
//int iTime = 0;
int N;
while (cin >> N)
{
int iTime = 0;
int iStart = 0;
int iStopNum[101];
if (N == 0)
break;
for (int i = 0; i < N; i++)
{
cin >> iStopNum[i];
if (iStopNum[i]>iStart)
{
iTime += (iStopNum[i] - iStart) * 6 + 5;
iStart = iStopNum[i];
}
else if (iStopNum[i] < iStart)
{
iTime += (iStart - iStopNum[i]) * 4 + 5;
iStart = iStopNum[i];
}
else
{
iTime += 5;
}
}
cout << iTime << endl;
}
return 0;
}