トピックの説明:
プリンターは、印刷キューに基づいて印刷タスクを実行します。印刷タスクは 1 ~ 9 の 9 つの優先順位に分かれており、数字が大きいほど優先順位が高くなります。プリンタは毎回キューの先頭から最初のタスク A を取り出します。
次に、キューに残っているタスクの中に A よりも優先度の高いタスクがあるかどうかを確認します。A よりも優先度の高いタスクがあれば、タスク A をキューの最後に置きます。そうでない場合は、タスク A を印刷します。
入力されたプリントキューを元に実際の印刷オーダーを出力するプログラムを作成してください。
説明を入力してください
各タスクの優先度を 1 行で入力します。優先度はカンマで区切ります。優先度の範囲は 1 ~ 9 です。
出力の説明
各タスクの印刷順序を0からカンマ区切りで1行出力します。
入力
- 9,3,5
出力
- 0、2、1
説明する
- キューの先頭にあるタスクの優先度は 9 で、最初に出力されるため、シーケンス番号は 0 になります。
- この場合、キューの先頭のタスクの優先度は 3 になります。キュー内には優先度 5 のタスクもあります。優先度 3 のタスクはキューの最後尾に移動されます。
- 次に、優先度 5 のタスクを出力します。つまり、シーケンス番号は 1 になります。
- 優先度レベル 3 の最後のタスクのシーケンス番号は 2 です。
入力
- 1、2、2
出力
- 2,0,1
説明する
- キューの先頭にあるタスクの優先度は 1 であり、シーケンスを続行するためにキューの最後尾に移動されます。
- 優先度 2 の 2 つのタスクを出力します。したがって、それらのシーケンス番号はそれぞれ 0 と 1 になります。
- 最後に、優先度 1、シーケンス番号 2 の残りのタスクを出力します。
この問題には、プリンタの動作プロセスをシミュレートし、タスクの優先順位に従って印刷することが含まれます。