#P6435. 「JOISC 2023 Day3」曲奇

「JOISC 2023 Day3」曲奇

题目描述

题目译自 JOISC 2023 Day3 T2 「クッキー / Cookies

理惠女士喜欢做曲奇。她做了 NN 种曲奇,第 i (1iN)i\ (1\le i\le N) 种做了 AiA_i 个。为了卖这些曲奇,她会将曲奇打包进盒子中。然而,需要满足以下条件:

  • 对于每个盒子,在其中的曲奇种类应该是不同的
  • 对于每个盒子,在其中的曲奇数应该等于如下 MM 个数中的一个:B1,B2,,BMB_1,B_2,\ldots,B_M

给定理惠女士做的曲奇的信息和打包的要求,写一个程序确定是否可以把所有曲奇打包。此外,如果可以将所有曲奇打包,你的程序应该输出一种使用最少的盒子的打包方案。

输入格式

第一行一个整数 NN

第二行 NN 个整数 A1,A2,,ANA_1,A_2,\ldots,A_N

第三行一个整数 MM

第四行 MM 个整数 B1,B2,,BMB_1,B_2,\ldots,B_M

输出格式

如果可以将所有曲奇打包并满足条件,第一行输出最少的盒子使用数 xx。接下来输出 xx 行表示打包方案。第 k (1kx)k\ (1\le k\le x) 行先输出一个整数 ckc_k,表示第 kk 个盒子中的曲奇数,接下来在这行输出 ckc_k 个整数 vk,1,vk,2,,vk,ckv_{k,1},v_{k,2},\ldots,v_{k,c_k},表示放在这个盒子中的曲奇种类。如果在满足使用盒子数最少的情况下,有多种打包方案满足条件,输出任意一种均可。

如果不可能将所有曲奇打包,输出一行一个整数 1-1 即可。

7
1 1 1 1 1 1 1
3
1 2 3

3
2 1 7
2 2 6
3 3 4 5

5
5 3 1 2 4
1
4

-1

7
5 4 4 2 1 1 1
2
2 6

7
6 1 2 3 4 5 6
2 2 1
2 3 1
2 4 1
2 7 1
2 3 2
2 3 2

数据范围与提示

对于所有输入数据,满足:

  • 1N15 0001\le N\le 15\ 000
  • Ai1,A1+A2++AN15 000A_i\ge 1,A_1+A_2+\ldots+A_N\le 15\ 000
  • 1MN1\le M\le N
  • 1BjN,Bj<Bj+11\le B_j\le N,B_j<B_{j+1}

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 N500,Ai=1N\le 500,A_i=1 66
22 N500,M=1N\le 500,M=1 77
33 A1+A2++AN15A_1+A_2+\ldots+A_N\le 15 1212
44 A1+A2++AN500A_1+A_2+\ldots+A_N\le 500 4545
55 A1+A2++AN3 000A_1+A_2+\ldots+A_N\le 3\ 000 1515
66 无附加限制