#P5380. Milk Pails

Milk Pails

题目描述

FarmerJohn{Farmer John }收到了一份需要立即装满 M{M }单位牛奶 (1{(1≤}M{M≤}200){200) }的订单。

不幸的是,他的花哨的挤奶机刚刚坏了,他只有两个大小为整数 X{X }Y1{Y (1≤}X,Y{X,Y≤}100){100) }的牛奶桶,他可以用它来量牛奶。

两个桶最初都是空的。使用这两个桶,他最多可以执行以下类型的操作中的 K{K }1{(1≤}K{K≤}100{100)}

{- }他可以将任一桶完全装满。 {- }他可以清空任何一个桶。

{- }他可以将一个桶的内容倒入另一个桶,当前者变空或后者变满时停止(以先发生者为准)。

尽管 FJ{FJ }意识到他可能无法在两个桶中准确地得到总共 M{M }个单位的牛奶,但请帮助他计算 M{M }与两个桶中的牛奶总量之间的最小误差量。

即请计算MM{|M-M′}{|}的最小值。这样 FJ{FJ }可以在两个桶之间共同构建 M{M' }单位的牛奶。

输入格式

第一行,也是唯一一行输入,包含X{X}Y{Y}K{K}M{M}

输出格式

输出从毫米到FJ{FJ}能产生的牛奶量的最小距离。

样例

输入样例

14 50 2 32

输出样例

18

提示

在两个步骤中,FJ{FJ}可以在他的桶中留下以下数量

(0, 0) = 0 单位
(14, 0) = 14  单位
(0, 50) = 50  单位
(0, 14) = 14  单位
(14, 36) = 50 单位
(14, 50) = 64 单位

单位我们可以得出的最接近32{32}个单位是14{14,}相差18{18}。注意,倒出第一个桶需要额外的步骤才能得到(0{0,}36{36)}