#3990. The Balance

    ID: 3990 传统题 2000ms 65MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>扩展欧基里德定理信息学奥赛之数学一本通习题1.11.6

The Balance

题目描述

要计算所需砝码的数量,首先需要确定使用300mg和700mg的砝码来称量200mg阿司匹林的方式。

根据题意,Iyo Kiffa-Australis女士选择在药物一侧放一个700mg的砝码,在另一侧放三个300mg的砝码(下图)

而不是在药物一侧放四个300mg的砝码和在另一侧放两个700mg的砝码(下图),因为这样更不方便。

所以,她所需的砝码数量为:

1×700mg+3×300mg

=700mg+900mg

=1600mg

总共需要的砝码重量是1600mg,但问题是要求计算所需的砝码数量,不是总重量。因此,按照她的选择:

1个700mg的砝码 + 3个300mg的砝码 = 4个砝码

所以,她需要4个砝码来称量200mg的阿司匹林。

输入格式

输入包含多个实例。

每个实例由一行描述,其中包含三个正整数a、b和d,它们之间用空格隔开。

你可以假设使用a毫克和b毫克的组合重量来测量d毫克。换句话说,你不需要考虑“无解”的情况。 输入的结束由一行包含三个零的数。

输入以一行包含三个零的行结束。

输出格式

输出由多行组成,每一行对应一个输入实例(a, b, d)。输出行应包含两个非负整数x和y,它们之间用空格隔开。它们应满足以下三个条件。

  • 你可以使用x个a毫克重量和y个b毫克重量来测量d毫克。
  • 砝码总数(x + y)是满足前述条件的非负整数对中最小的。
  • 砝码总质量(ax + by)是满足前两个条件的非负整数对中最小的。

输出中不应出现额外的字符(例如多余的空格)。

样例

700 300 200
500 200 300
500 200 500
275 110 330
275 110 385
648 375 4002
3 1 10000
0 0 0
1 3
1 1
1 0
0 3
1 1
49 74
3333 1

数据范围

a!=ba10000b10000d50000a != b,a \le 10000,b \le 10000,d \le 50000

来源

  • poj2142
  • 信息学奥赛之数学一本通
  • stong9070整理