Problem:
ガソリンスタンド

　

白虎サービスエリアのガソリンスタンドには、$1$から$N$の番号が割り当てられた$N$個のレーンがあります。各レーンの先頭の車が給油を行うことができます。

ガソリンスタンドに入場した車は、並んでいる車が最も少ないレーンを選び列の末尾に並びます。そのようなレーンが複数ある場合は、番号が最も小さいレーンを選びます。給油が終わるとその車はレーンから出ていき、その後ろの車が給油を行います。一度レーンを選んだら、他のレーンに移ることはできません。また、レーンに並んでいる車の順番が変わることはありません。

レーンの数、入場した車と給油が終了したレーンの情報が与えられたとき、給油が終了した車のナンバーを順番に出力するプログラムを作成せよ。入場の情報はスタンドに入ってくる車のナンバー、給油終了の情報は先頭の車の給油が終了したレーン番号としてそれぞれ与えられる。ただし、最初はどのレーンにも車は並んでいないものとする。

入力

入力は以下の形式で与えられる。

$N$ $M$
$info_1$
$info_2$
:
$info_M$

１行目にレーンの数$N$ ($1\leq N \leq 10$)と情報の数$M$ ($2 \leq M \leq 10,000$)が与えられる。続く$M$行に各情報$info_i$が与えられる。各$info_i$は以下のいずれかの形式で与えられる。

0 $lane$

または

1 $car$

最初の数字が0の場合、番号が$lane$ ($1 \leq lane \leq N$)であるレーンに並んでいる先頭の車の給油が終了したことを示す。最初の数字が1の場合、ナンバーが$car$ ($1 \leq car \leq 9,999$)である車がスタンドに入場したことを示す。

入力は以下の制約を満たす。

ガソリンスタンドに入って来る車のナンバーは、全て異なる。

最初の数字が0,1である情報は、それぞれ必ず１つ以上ある。

車のいないレーンに対して、最初の数字が0である情報は与えられない。

出力

給油終了の情報ごとに、給油が終了した車のナンバーを1行に出力する。
 

入出力例

入力例

2 7
1 999
1 1000
0 2
1 1001
1 1002
0 1
0 1

出力例

1000
999
1002

Solution in JavaScript (judge verdict: Accepted)

var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var arr=input.trim().split("\n");
var [n,m]=arr.shift().split(" ").map(Number);
var lane=[];
for(var i=0;i<n;i++)lane[i]=[];
arr.forEach(v=>{
   var [a,b]=v.split(" ").map(Number);
   if(a==0)console.log(lane[b-1].shift());
   else if(a==1){
      var m=lane.map(v=>v.length);
      var s=m.indexOf(Math.min(...m));
      lane[s].push(b);
   }
});