#futurecontest2022quala. [future_contest_2022_qual_a]Project Leader

[future_contest_2022_qual_a]Project Leader

ストーリー

F社のプロジェクトリーダーに就任したあなたの仕事は、チームメンバーに適切にタスクを割り振ることである。 現在取り組んでいるプロジェクトはいくつかのタスクからなり、 各チームメンバーの持つ技能レベルと各タスクごとの要求技能レベルに応じて、タスクの完了までにかかる日数の期待値が変化する。 経験豊富なあなたは、各タスクの要求技能レベルを正確に把握することが出来るが、就任したばかりのため、各チームメンバーの技能レベルはまだ全く分かっていない。 チームメンバーの技能レベルを徐々に見極めながら、適切にタスクを割り振ってほしい。

問題文

NN 個のタスクを MM 人のチームメンバーに割り振りたい。 各タスクは高々1人に割り振り、タスクが割り振られたチームメンバーにはそのタスクが完了するまで他のタスクを割り振ることは出来ない。 全部で KK 種類の技能があり、各チームメンバー jj には技能レベルを表す非負整数ベクトル bmsj=(sj,1,cdots,sj,K)\\bm{s_j} = (s_{j,1},\\cdots,s_{j,K}) が、各タスク ii には要求技能レベルを表す非負整数ベクトル bmdi=(di,1,cdots,di,K)\\bm{d_i} = (d_{i,1},\\cdots,d_{i,K}) がそれぞれ定まっている。 このうち、各チームメンバーの技能レベル bms1,cdots,bmsM\\bm{s_1},\\cdots,\\bm{s_M} は入力として与えられない。

wi,j:=sumk=1Kmax(0,di,ksj,k)w_{i,j}:=\\sum_{k=1}^K \\max(0,d_{i,k}-s_{j,k}) と定める。 チームメンバー jj にタスク ii を割り振った時、タスクの完了までには以下のように定める ti,jt_{i,j} 日かかる。

  1. wi,j=0w_{i,j}=0 の場合、ti,j=1t_{i,j}=1
  2. wi,j>0w_{i,j}>0 の場合、\-3\-3 以上 33 以下の整数値をとる一様乱数を rir_i として、ti,j=max(1,wi,j+ri)t_{i,j}=\\max(1,w_{i,j}+r_i)

tt 日かかるタスクを dd 日目に開始した場合、d+t1d+t-1 日目の終わりにそのタスクは完了する。 タスク間には依存関係があり、あるタスクを開始するためには、依存する全てのタスクが前日の終わりまでに完了していなければならない。 出来るだけ短い日数で全てのタスクを完了してほしい。

入出力

各入力値の範囲については入力生成の項を参照せよ。

まずはじめに、タスク数 NN、チームメンバー数 MM、技能数 KK、依存関係数 RR、各タスクの要求技能レベル bmd1,cdots,bmdN\\bm{d_1},\\cdots,\\bm{d_N}、依存するタスクの組のリスト (u1,v1),cdots,(uR,vR)(u_1,v_1),\\cdots,(u_R,v_R) が以下の形式で標準入力から与えられる。

NN MM KK RR d1,1d_{1,1} cdots\\cdots d1,Kd_{1,K} vdots\\vdots dN,1d_{N,1} cdots\\cdots dN,Kd_{N,K} u1u_1 v1v_1 vdots\\vdots uRu_R vRv_R

(ui,vi)(u_i,v_i) は、タスク viv_i (1leqvileqN1\\leq v_i\\leq N) がタスク uiu_i (1lequileqN1\\leq u_i\\leq N) に依存しており、viv_i を開始する前に uiu_i を完了しなければならないことを示している。 ui<viu_i<v_i を満たし、同じ(ui,vi)(u_i,v_i)のペアは高々一回しか入力に含まれない。

次に、1日目から始め、毎日以下の2つの処理をせよ。

まず、その日にタスクを開始するチームメンバー aia_i (1leqaileqM1\\leq a_i\\leq M) と担当するタスク bib_i (1leqbileqN1\\leq b_i\\leq N) の組のリスト (a1,b1),cdots,(am,bm)(a_1,b_1),\\cdots,(a_m,b_m) を以下の形式で標準出力に1行に出力せよ。

mm a1a_1 b1b_1 cdots\\cdots ama_m bmb_m

**出力のあとは標準出力を flush しなければならない。**そうしない場合、TLE