一日一プロ
キュー
擬似タスクスケジューリング
using System; using System.Collections.Generic; namespace queue { class MainClass { public class Process { public string name; public int time; public Process(){ name = "ERROR"; time = 0; } public Process(string t_name, int t_time){ name = t_name; time = t_time; } } public static List<Process> queue = new List<Process> (); public static void Main (string[] args) { string[] str = Console.ReadLine ().Split (' '); int cmp = int.Parse (str [0]); int q = int.Parse (str [1]); for (int i = 0; i < cmp; i++) { str = Console.ReadLine ().Split (' '); Process tmp = new Process (str [0], int.Parse (str [1])); que (tmp); } while (queue.Count > 0) { Process tmp = new Process("",0); tmp = deque (); if (tmp.time > q) { tmp.time -= q; que (tmp); Console.WriteLine ("{0}, {1}", tmp.name, tmp.time); } else { Console.WriteLine ("Proces END:{0}", tmp.name); } } } public static void que(Process task){ queue.Add (task); } public static Process deque(){ Process ret = new Process(); if (queue.Count != 0) { ret = queue [0]; queue.RemoveAt (0); } else { ; } return ret; } } }