SP3306 SA04D - Very Special Boxes

题目描述

特殊盒子公司(SBC)是一家家族经营的企业,专门制作精美的礼品包装纸盒。所有盒子都是用高档材料手工制作的。每次接受客户订单时,他们总是多做几个,以便未来需要时还能有库存。随着时间的推移,他们的库存越来越多,如今手头的盒子堆积无处安放,因此他们决定做个清单,记录库存中每个盒子的尺寸。 如今,SBC 收到了一份客户要求在明天交货的订单,所以无法再制作新的盒子。客户需要 $N$ 个完全相同的盒子,每个用来包装一件尺寸为 $X, Y, Z$ 的物品。考虑到所用纸板非常薄,我们可以假设尺寸为 $(X, Y, Z)$ 的盒子能正好装下客户的物品。如果库存中没有至少 $N$ 个刚好匹配的盒子,客户希望这些盒子尽量紧密合适,即能最小化物品与盒子之间的空余空间。物品可以任意旋转以适应盒子,因此,尺寸为 $(X, Y, Z)$ 的盒子和 $(Y, Z, X)$ 的盒子没有区别。 你能帮 SBC 确定是否有办法满足客户的需求吗?

输入格式

输入包含多个测试用例。每个测试用例的第一行包含两个整数 $N$ 和 $M$,分别表示客户需要的盒子数量($1 \le N \le 1500$)和库存清单上的盒子数量($1 \le M \le 1500$)。第二行包含三个整数 $X, Y, Z$,表示客户物品的尺寸($0 < X, Y, Z \le 50$)。接下来的 $M$ 行中,每行都有三个整数 $A, B, C$,表示库存中某一盒子的尺寸($0 < A, B, C \le 50$)。当 $N = 0$ 时,表示输入结束。 输入需要从标准输入中获取。

输出格式

对于每个测试用例,输出一行,内容为: - 如果无法满足客户需求(因为在库存中找不到至少 $N$ 个尺寸合适的盒子),输出 `impossible`; - 否则,输出一个整数 $V$,表示物品放入所选盒子时,剩余的空余空间体积。

说明/提示

- $1 \le N \le 1500$ - $1 \le M \le 1500$ - $0 < X, Y, Z \le 50$ - $0 < A, B, C \le 50$ **本翻译由 AI 自动生成**