【200ポイント】【プリントタスク整理】

トピックの説明:

プリンターは、印刷キューに基づいて印刷タスクを実行します。印刷タスクは 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 の残りのタスクを出力します。

この問題には、プリンタの動作プロセスをシミュレートし、タスクの優先順位に従って印刷することが含まれます。

おすすめ

転載: blog.csdn.net/weixin_54707168/article/details/132535782