ICPC管理者計畫一個持續$n$天的新專案。這個專案一共有$m$個人參加(編號$1\sim m$)。在第$j (1\le j\le n)$天需要恰好$d_j$個人工作,且第$i (1\le i\le m)$個人共需要工作恰好$w_i$天。
為了增加專案的工作效率,工作計畫須符合以下兩個條件:
1. 每個人一旦開始工作就必須要連續工作恰好$w$天。
2. 每個人在完成一段工作後,需要休息至少$h$天。
ICPC管理者想要找出一份工作計畫,分配每個人的工作時間,使得上述條件皆能滿足(第$j$天恰好$d_j$人工作、第$i$個人共工作$w_i$天、每個人的每段工作時間都是連續$w$天工作接著至少$h$天休息)。
舉例來說,假設有一份專案持續$n=9$天,且一共有$m=4$個人參與,且令$w=2,h=1,(w_1,W_2,W_3,W_4)=(4,4,6,2),(d_1,d_2,d_3,d_4,d_5,d_6,d_7,d_8,d_9)=(1,3,2,1,2,1,1,3,2)$。下表示一個符合條件的工作規畫表,其中第$i$列代表第$i$個人且第$j$行代表第$j$天,若第$i$列$j$行為$1$代表第$i$個人在第$j$天有工作,反之若為$0$代表沒工作。
給你$n,m,w,h,w_i$(保證是w的倍數)$,d_j$,請寫一個程式找出一種符合的工作計畫表。
輸入第一行有四個正整數$m,n,w,h (1\le m\le 2000,1\le n\le 2000,1\le w,h\le n)$。
下一行有$m$個正整數,其中第$i$個正整數代表$w_i (1\le w_i\le n , w|w_i)$。
再下一行有$n$個非負整數,其中第$j$個整數代表$d_j (1\le d_j\le m)$。
如果可以找出一組符合條件的的工作計畫表,在第一行輸出一個數字$1$,並接著輸出$m$行,其中第$i$行包含$w_i/w$個數字,這些數字代表計畫表中第$i$個人每段工作的開始時間(依時間排序)。如果有多種符合條件的工作計畫表,輸出任一種即可。
若無法找出滿足條件的計畫表,則僅輸出一行$-1$。
範例測資1: 4 9 2 1 4 4 6 2 1 3 2 1 2 1 1 3 2 範例測資2: 4 7 2 2 4 4 4 2 1 3 2 1 3 3 1
範例測資1: 1 1 8 2 7 2 5 8 4 範例測資2: -1
其中範例測資1的範例輸出並非唯一的解。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |