#P16610. [GCPC2019]Keeping the Dogs Out
[GCPC2019]Keeping the Dogs Out
题目描述
你的朋友经常受到邻居家恶犬的困扰。她决定修建一堵墙,把这些狗挡在花园外面。
整堵墙必须处处等高,也就是说,墙的正面必须是一个没有任何孔洞的矩形。她并不在意墙的具体长和高,但要求使用掉所有已经购买的石块。
所有石块的厚度相同,但长度和高度可能不同。每块石头的长度等于高度,因此正面是一个正方形,并且边长一定是 的整数次幂。
墙的厚度必须与石块厚度相同。因此:
- 不能旋转石块来改变其厚度方向;
- 不能把两块石头前后叠放。
给定各种尺寸石块的数量,请判断能否使用全部石块拼成一堵没有孔洞的矩形墙。若可以,输出一种可能的墙的长度和高度。

上图展示了样例 1 的一种拼法。
输入格式
第一行包含一个整数 (),表示最大石块的边长为 。
第二行包含 个整数 (,),其中 表示边长为 的石块数量。
保证所有石块的总面积不超过 。
输出格式
若能够使用全部石块拼成一堵没有孔洞的矩形墙,输出两个整数,表示一种可行的墙的长度和高度。
若存在多种方案,可以输出任意一种。
若无法完成,输出:
impossible
样例 1
输入
2
21 3 3
输出
9 9
样例 2
输入
2
0 3 2
输出
impossible