#U1516FS3. Milk Pails
Milk Pails
Farmer John 收到了一份需要立即装满 M 单位牛奶 (1≤M≤200) 的订单。不幸的是,他那辆漂亮的挤奶机刚刚坏了,他只有两个大小为整数 X 和 Y (1≤X,Y≤100) 的牛奶桶,他可以用它来量牛奶。两个桶最初都是空的。使用这两个桶,他最多可以执行以下类型的操作中的 K 个(1≤K≤100):
- 他可以将任一桶完全装满。
- 他可以清空任何一个桶。
- 他可以将一个桶中的内容倒入另一个桶中,当前者变空或后者变满时停止(以先发生者为准)。
尽管 FJ 意识到他可能无法在两个桶中准确地得到总共 M 个单位的牛奶,但请帮助他计算 M 与两个桶中的牛奶总量之间的最小误差量。即请计算|M−M′|的最小值。这样 FJ 可以在两个桶之间共同构建 M' 单位的牛奶。
输入格式(文件 pails.in):
第一行也是唯一的输入行包含 X、Y、K 和 M。
输出格式(文件 pails.out):
输出从 M 到 FJ 可以生产的牛奶量的最小距离。
SAMPLE INPUT:
14 50 2 32
SAMPLE OUTPUT:
18
在两个步骤中,FJ 可以在他的桶中留下以下数量
(0, 0) = 0 units
(14, 0) = 14 units
(0, 50) = 50 units
(0, 14) = 14 units
(14, 36) = 50 units
(14, 50) = 64 units
最接近 32 个单位的是 14 个,相差 18 个。请注意,倒出第一个桶需要额外的步骤才能得到 (0, 36)。