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 自动生成**