6848 - 3.2.4 Feed Ratios 饲料调配
时间限制 : 1 秒
内存限制 : 128 MB
农夫约翰从来只用调配得最好的饲料来为他的奶牛.饲料用三种原料调配成:大麦,燕麦和小麦.他知道自己的饲料精确的配比,在市场上是买不到这样的饲料的.他只好购买其他三种混合饲料(同样都由三种麦子组成),然后将它们混合,来调配他的完美饲料.
给出三组整数,表示 大麦:燕麦:小麦 的比例,找出用这三种饲料调配 x:y:x 的饲料的方法. 例如, 给出目标饲料 3:4:5 和三种饲料的比例:
1:2:3
3:7:1
2:1:2
你必须编程找出使这三种饲料用量最少的方案,要是不能用这三种饲料调配目标饲料,输出“NONE”.“用量最少”意味着三种饲料的用量(整数)的和必须最小.
对于上面的例子,你可以用 8 份饲料 1,2 份饲料 2,和 5 份饲料 3,来得到 7 份目标饲料: 8*(1:2:3) + 1*(3:7:1) + 5*(2:1:2) = (21:28:35) = 7*(3:4:5)
表示饲料比例的整数,都是小于 100(数量级)的非负整数.表示各种饲料的份数的整数,都小于 100.一种混合物的比例不会由其他混合物的比例直接向加得到.
输入
Line 1: 三个用空格分开的整数,表示目标饲料
Line 2..4: 每行包括三个用空格分开的整数,表示农夫约翰买进的饲料的比例
输出
输出文件要包括一行,这一行要么有四个整数,要么是“NONE”.前三个整数表示三种饲料的份数, 用这样的配比可以得到目标饲料.第四个整数表示混合前三种饲料后得到的目标饲料的份数.
样例
输入
3 4 5 1 2 3 3 7 1 2 1 2
输出
8 1 5 7
来源
USACO