#227. 京城首少

京城首少

题目描述

话说,清朝年间。京城中有两个出手阔绰的公子哥,小福王爷和小侯王爷,分别是福王爷和侯王爷的独子。他们闲来无事就喜欢——赌。

这不,小侯王爷这天来到小福王爷府上饮酒。酒过三巡,又离不开赌啦。

小福王爷给小侯王爷出了个难题:

我这有2个宝箱,分别装有黄金若干两。我非常喜欢搜刮民脂,故可以每天往一个宝箱中装入另一个宝箱现在有的黄金数。

具体来说,假设昨日宝箱中分别装有黄金x两和y两,我今天可以往第一个宝箱装y两黄金,或者往第二个宝箱装x两黄金。也就是今天宝箱中的黄金数量可以是(x+y,y)或者(x,x+y)。

现在我有4个宝箱,宝箱中的黄金数分别是a,b,c和d。

你要给我找出一对数x和y,往2个空的宝箱中分别塞入x两黄金和y两黄金。你每天也像我一样这么玩,这宝箱中的黄金数量日后可以变为(a,b),也可以变为(c,d)。

你若是能找到x和y,我便给你x+y两黄金。你若是能找到多对x和y,我便给你x+y和最大的黄金数。

你若是找不到,这京城首少的名号可是我的了。

你能帮助小侯王爷完成这个难题吗?

以上问题的人话版:

对于数对(x,y),我们每次可以使之变为(x+y,y)或者(x,x+y)。现在给定4个数字a,b,c和d,请找出数对(x,y),使得(x,y)经过操作可以变为(a,b)或者(c,d)。变为(a,b)的操作次数可以与变为(c,d)的操作次数不同。

输出x+y的值。如果有多组(x,y)满足条件,输出x+y的最大值。

输入格式

多组输入数据,每组输入数据包含4个整数a,b,c和d。(1<=a,b,c,d<=1000000)。

输出格式

对于每组输入数据,输出最大的x+y的值,如果找不到数对(x,y),输出-1。

样例

样例 1

输入 # 1

1 2 2 1
15 4 10 7

输出 # 1

2
7