オンライン1008を判断電子科学技術の杭州大学
問題の説明は、
私たちの街で最も高い建物は一つだけのエレベーターがあります。要求リストは、N正の数で構成されています。数字はどの階でエレベーターが指定された順序で、停止します表します。1つのフロアを下に移動するために1階までエレベーターを動かすために6秒かかり、そして4秒。エレベーターは、各停留所で5秒間留まります。
指定された要求のリストについては、リスト上の要求を満たすために費やした時間の合計を計算することです。エレベーターは先頭の0番目の階にあり、要求が満たされたとき階に戻ることはありません。
入力
複数のテストケースがあります。各ケースは、nは正の数、続いてN整数陽性を含んでいます。入力のすべての数字は、N = 0意味入力の終了未満100 Aのテストケースです。このテストケースでは、処理されるべきではありません。
出力は、
各テストケースのための単一の行に合計時間を表示します。
サンプル入力
1 2
3 2 3 1
0
サンプル出力
17
41
著
ZHENG、Jianqiang
ソース
ZJCPC2004
コード:
#include<iostream>
using namespace std;
int main()
{
int num,t;
while(cin>>num)
{
if(num!=0)
{
int* seq = new int[num]; //灵活开辟空间
for(int i = 0;i<num;i++){
cin>>seq[i];
}
int total_t = 0;
for(int j = 0;j<num-1;j++){
if(seq[j+1]>seq[j])
total_t = (seq[j+1] - seq[j])*6 + total_t ;
if(seq[j+1]<=seq[j])
total_t = (seq[j] - seq[j+1])*4 + total_t;
}
cout<<total_t + 5*num + 6*seq[0]<<endl;
delete[] seq;//释放空间
}
else break;
}
return 0;
}