1008エレベーター(20ポイント)
私たちの街で最も高い建物にはエレベーターが1つしかありません。リクエストリストはN個の正の数で構成されています。番号は、エレベータが停止する階を指定された順序で示しています。エレベータを1階上に移動するのに6秒、1階下に移動するのに4秒かかります。エレベーターは各停車場で5秒間停車します。
特定のリクエストリストについて、リストのリクエストを実行するために費やされた合計時間を計算する必要があります。エレベーターは最初は0階にあり、ご要望に応じて1階に戻る必要はありません。
例:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int K;
cin >> K;
int ans = 0;
int floor = 0;
for(int i = 0; i < K; i++) {
int move, diff;
cin >> move;
diff = move - floor;
floor = move;
if(diff > 0) {
ans += diff * 6 + 5;
} else {
ans += (-diff) * 4 + 5;
}
}
cout << ans;
}
アイデア:
動的計画法、dp [i] = dp [i-1] + cost [i]