雲端列印服務公司提出一個新型服務。
該公司有 n 台 3D 印表機,
其中印表機 P1,P2, ..., Pk 用以優先服務最為重要客戶,
印表機 Pk+1, Pk+2, ..., Pn 列印速度較慢,用以優先服務一般客戶。
每個客戶依該年度所選擇服務等級及所繳交費用可有不同的列印優先權, 以 1, ..., 10000 表示之;
10000 代表最高列印優先權,1 代表最低列印優先權。
為了不讓低列印優先權的客戶永無止盡的等待,
印表機 P1, P2, ..., Pk 一旦有空,等待的工作中優先權最高的工作就會被交付列印;
而印表機 Pk+1, Pk+2, ..., Pn一旦有空, 等待的工作中優先權最低的工作就會被交付列印。
請寫一個程式列舉交付列印工作的順序。
輸入只有一行,共有不定數量的整數,
整數可為{-2, -1, 0, 1, 2, ..., 10000},兩整數之間以一個空白隔開。
-2 表示印表機 P1, P2, ..., Pk其中一台有空, 可以列印最高優先權的工作;
-1 表示印表機 Pk+1, Pk+2, ..., Pn其中一台有空, 可以列印最低優先權的工作;1, 2, ..., 10000
代表新增一個優先權為該數字之工作;
0 則代表輸入結束。
若輸入為 -1 或 -2但無等待列印的工作,則不列印,需等待下一個 -1 或 -2 才再列印新的工作。
請依被列印工作的順序,輸出該工作的優先權代號,之後緊接著一個空白。
尚未交付列印的工作不需輸出。
// Example 1 20 15 10 -2 -1 -1 0 // Example 2 1 2 3 -2 4 5 6 -1 7 0
// Example 1 20 10 15 // Example 2 3 1
本題共有五組測試資料。每組可有多個輸入檔案,全部答對該組才得分。
第一組 15 分,最多 11 個工作需要被列印,且只有一次交付列印指令。
第二組 15 分,最多 20 個工作需要被列印,且只有二次交付列印指令。
第三組 20 分,最多 50 個工作需要被列印,且最多有 25 次交付列印指令。
第四組 20 分,最多 15,000 個工作需要被列印或交付列印。
第五組 30 分,最多 500,000 個工作需要被列印或交付列印。
使用 C++作答的同學,請在程式碼開頭加上#include,並利用 scanf讀入資料。
使用cin讀入資料可能會因為讀入效率太差以致於程式執行時間超過限制。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
42058 | toseanlin@gm ... (Dr. SeanXD) | c421 | 42 | 2024-09-23 11:25 | |
38219 | Chaoray (巧克力內餡貢丸) | c421 | 266 | 2023-11-04 18:08 | |
25434 | asnewchien@g ... (david) | c421 | 618 | 2021-05-21 12:22 |