私の電気駐車場のドアは次のように機能します。
- ドアを制御するためのプッシュボタンは1つだけです
- ドアが完全に閉じてボタンを押すと、ドアが開き始めます。完全に開くには10秒かかります
- ドアが完全に開いていてボタンを押すと、ドアが閉じ始めます。完全に閉じるには10秒かかります
- ドアが開閉の途中にあり、ボタンを押すと、ドアが停止し、部分的に開いたままになります。
- 開閉動作の自動完了、または動作の途中でボタンを押して手動で中断したことにより、ドアの動きが止まるたびに、メカニズムは反転し、次の動作の方向を記憶します。
- ドアが停止しているが部分的に開いているときにボタンを押すと、そのアクションを完了するまでの時間は、アクションを完了するために移動する必要がある量に比例して、わずか10秒になります。
開始時にドアが完全に閉じていると仮定します。
整数の入力リストが提供されます。これらの整数は、コントロールボタンを連続して押す間に待機する秒数です。
2つのことを出力します。
- すべてのボタンのプッシュが完了し、ドアが定常状態に達したときのドアの状態を示すパーセンテージ。
%シンボルの出力はオプションです。 - 次のボタンを押すとドアが移動する方向を明確に示します。これは、
up/down、U/D、+/-、1/0または任意の選択です。
ドアが開いたり閉じたりするアクションを完了するのに、ドアが無限に10秒未満かかると仮定することができます。
入力例:
<empty list> # button was pushed just once
20 # button was pushed twice with 20 seconds between
10
5
20 20
10 10
5 5
1 2 3
8 9 10 11
11 10 9 8 7
上記の入力に対応する期待される出力
100% D
0% U
0% U
50% D
100% D
100% D
0% U
100% D
0% U
20% U
最後のテストの実施例
- ドアは閉まり始めます。ボタンを押す
- 11秒待ちます。ドアは完全に開いてしまいます。ボタンを押します。
- 10秒待ちます。ドアは完全に閉じてしまいます。ボタンを押します。
- 9秒待ちます。ボタンを押します。ドアは90%開いた状態で停止します。
- 8秒待ちます。ボタンを押します。ドアが閉まり始めます。
- 7秒待ちます。ボタンを押します。ドアは20%開いた状態で停止します。次の方向に進みます。
ガレージのドアは、閉じている間にボタンを押すと半開きで停止しますか?私のものは、開くためだけではありません。
—
バリント
@Bálintは私の両方です。
—
デジタルトラウマ
@Maltysenは今やパーセンテージに固執します。
—
デジタル外傷
入力も浮動小数点数で構成されている場合、浮動小数点数が出力されても大丈夫ですか?
—
R. Kap
@ R.Kapはい、それで結構です。
—
デジタル外傷