1 // EG入力100 5 2 // P1 150 。3 // P2 80 。4 // P3 200である 。5 // P4 350 。6 // P5 20である 。7の#include <入出力ストリーム> 。8の#include < 文字列 > 。9の#include <キュー> 10 使用して 名前空間STD; 11 int型のmain(){ 12は INT N-; // タスクの数 13である INT時間; // タイム・スライス 14 CIN >> N-; 15 >> CIN 時間、 16 列 P [ 100000 ]; // タスク名 17。 INT T [ 100000 ]; 18である 文字列、PP 。19 キュー< ストリング > Q; 20である ため(INT I = 1 ; I <= N - 、Iは++){ // 入力、及び場合各タスク 21は CIN >> P [I]; 22である q.push(P [I]); 23である CIN >> T [I]; 24 } 25 INT timeans = 0 ; // タイマー 26である 一方で(!{Q.empty()) 27 PP = q.front(); 28 IF(T [PPの[ 1 ] - ' 0 ' ] <=時間){ //は短い時間スライスを要し 29 = timeansを+ Tのtimeans [PPの[ 1 ] - ' 0 ' ]; // タイマープラス時間 30 q.pop(); //は、デキュー完了後 31である << << PP COUT ' ' << timeans < < ENDL; 32 } 33が 他 { // 処理された時間スライスはより大きい 34 +時間= timeansのtimeans; // タイマープラス時間 35 T [PPの[ 1 ] - ' 0 ' ] - =時間; // このタスクで更新 36 q.pop(); // デキュー 37 [ q.push(PP); 38である } 39 } 40 リターン 0 ; 41です }