CF1798F Gifts from Grandfather Ahmed

题目描述

Ahmed 爷爷的学校有 $n+1$ 名学生。这些学生被分为 $k$ 个班级,第 $i$ 个班级有 $s_i$ 名学生。因此,$s_1 + s_2 + \ldots + s_k = n+1$。 由于愚人节即将到来,所有学生都将收到礼物! Ahmed 爷爷计划订购 $n+1$ 个装有礼物的盒子。每个盒子可以包含一个或多个礼物。他打算将这些盒子分配给各个班级,使得满足以下条件: 1. 第 $i$ 个班级恰好收到 $s_i$ 个盒子(这样每个学生都能打开一个盒子)。 2. 第 $i$ 个班级收到的所有盒子中的礼物总数必须是 $s_i$ 的倍数(即这些礼物可以在该班的 $s_i$ 名学生之间平均分配)。 不幸的是,Ahmed 爷爷只订购了 $n$ 个装有礼物的盒子,第 $i$ 个盒子中有 $a_i$ 个礼物。 Ahmed 需要再购买一个缺失的礼物盒,这个盒子中的礼物数应为 $1$ 到 $10^6$ 之间的整数。请帮助 Ahmed 确定缺失盒子中应有多少个礼物,并构造一个合理的盒子分配方案,或者报告无解。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \le n, k \le 200$,$k \le n+1$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^6$),表示现有盒子中的礼物数。 第三行包含 $k$ 个整数 $s_1, s_2, \ldots, s_k$($1 \le s_i \le n+1$),表示每个班级的学生人数。保证 $\sum s_i = n+1$。

输出格式

如果无法购买合适的盒子,输出一行整数 $-1$。 否则,第一行输出一个整数 $s$,表示 Ahmed 爷爷应购买的盒子中礼物的数量($1 \le s \le 10^6$)。 接下来 $k$ 行,每行输出 $s_i$ 个整数,表示分配给第 $i$ 个班级的盒子中礼物的数量。 如果有多种方案,输出任意一种均可。

说明/提示

在第一个样例中,Ahmed 爷爷可以只买一个装有 $1$ 个礼物的盒子。之后,将两个装有 $7$ 个礼物的盒子分配给第一个班级,$7+7=14$ 能被 $2$ 整除。第二个班级得到装有 $1$、$7$、$127$ 个礼物的盒子,$1+7+127=135$ 能被 $3$ 整除。 在第二个样例中,班级人数分别为 $6$、$1$、$9$、$3$。可以将现有盒子分配给人数为 $6$、$9$、$3$ 的班级,而人数为 $1$ 的班级可以购买任意数量的盒子。在人数为 $6$ 的班级中分配装有 $7$、$1$、$7$、$6$、$5$、$4$ 个礼物的盒子,$7+1+7+6+5+4=30$ 能被 $6$ 整除。在人数为 $9$ 的班级中分配装有 $1$、$2$、$3$、$8$、$3$、$2$、$9$、$8$、$9$ 个礼物的盒子,$1+2+3+8+3+2+9+8+9=45$ 能被 $9$ 整除。剩下的盒子($6$、$5$、$4$)分配给人数为 $3$ 的班级,$6+5+4=15$ 能被 $3$ 整除。 由 ChatGPT 4.1 翻译