理解扩展欧几里德算法

时间:2014-04-17 13:22:15

标签: linear-programming number-theory

我有一些(比如说,n)弹珠(小玻璃球),我打算买一些盒子来存放它们。这些盒子有两种类型:

Type 1: each box costs c1 Taka and can hold exactly n1 marbles
Type 2: each box costs c2 Taka and can hold exactly n2 marbles

我希望每个用过的盒子都能满足其容量,并且最大限度地降低购买它们的总成本。由于我发现很难弄清楚如何在盒子中分发我的弹珠,我寻求你的帮助。我希望你的程序也有效。

Input

输入文件可能包含多个测试用例。每个测试用例以包含整数n(1 <= n <= 2,000,000,000)的行开始。第二行包含c1和n1,第三行包含c2和n2。这里,c1,c2,n1和n2都是正整数,其值小于2,000,000,000。

第一行中包含n为零的测试用例终止输入。

Output

对于输入打印中的每个测试用例,包含最小成本解决方案的行(两个非负整数m1和m2,其中mi =所需的类型i框的数量)如果存在,则打印&#34;失败&#34;否则。

如果存在解决方案,您可以认为它是唯一的。

Sample Input
43
1 3
2 4
40
5 9
5 12
0

Sample Output
13 1
failed

0 个答案:

没有答案