测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2314. 圆桌问题

编程题 提高+/省选-

题目描述

有来自 $m$ 个不同单位的代表参加一次国际会议。第 $i$ 个单位派出了 $r_i$ 个代表。

会议的餐厅共有 $n$ 张餐桌,第 $i$ 张餐桌可容纳 $c_i$ 个代表就餐。

为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。请给出一个满足要求的代表就餐方案。

输入格式

输入的第一行是用空格隔开的两个整数,分别代表单位的个数 $m$ 和餐桌的个数 $n$。
第二行有 $m$ 个用空格隔开的整数,第 $i$ 个整数代表第 $i$ 个单位的代表人数 $r_i$。
第三行有 $n$ 个用空格隔开的整数,第 $i$ 个整数代表第 $i$ 张餐桌能容纳的人数 $c_i$。

输出格式

请输出是否存在满足要求的就餐方案,若存在,请给出任意一种可行的方案。
输出的第一行是一个非 $0$ 即 $1$ 的整数,若存在方案则输出 $1$,否则输出 $0$。
若存在方案,则对于第 $2$ 到第 $(m + 1)$ 行,在第 $(i + 1)$ 行输出 $r_i$ 个整数,代表第 $i$ 个单位的代表就餐的餐桌编号。

输入输出样例

输入 #1
4 5
4 5 3 5
3 5 2 6 4
输出 #1
1
1 2 4 5
1 2 3 4 5
2 4 5
1 2 3 4 5

说明/提示

**【数据规模与约定】**

- 对于 $100\%$ 的数据,保证 $1 \leq m \leq 150$,$1 \leq n \leq 270$,$1 \leq r_i, c_i \leq 10^3$。

**【提示】**

- 请注意输入的第一行先读入 $m$ 再读入 $n$。
上一题 去做题 下一题