#z1056. 纠缠硬币翻转
纠缠硬币翻转
纠缠硬币翻转
时间限制:1000MS 512MB
题目描述
现有 枚分正反两面的硬币,初始 枚正面朝上,其余 枚反面朝上。
你可以对这些硬币进行任意次操作(包括0次):在每次操作中,你应任选恰好 枚硬币进行翻转(正面朝上变为反面朝上,反之亦然)。
你的目标是将正面朝上的硬币数从 变为 。输出所需的最少操作次数或报告无解。
输入描述
第一行含仅一个正整数 (),代表测试用例的数量。测试用例格式如下:
每个测试用例仅占一行,含四个整数 (),含义如上。
输出描述
对于每个测试用例,输出仅占一行:
如果有解,输出一个整数表示最少的操作次数;否则输出-1表示无解。
输入样例
8
8 3 4 7
9 7 1 0
16 15 1 0
4 2 3 3
6 6 2 4
7 6 2 5
98257693 98257692 24 43850682
98257693 98257692 24 43850681
输出样例
1
5
15
0
1
-1
43850658
-1
提示
对操作的进一步解释:
设硬币总数为 ,现正面朝上的硬币数量为 ,你在该步操作中选择了 枚正面朝上的硬币和 枚反面朝上的硬币进行翻转,则应有 和 ,且操作后正面朝上的硬币数变为 。
比如,当 时, 可以取 使 依次变为 ,但不能取 及以上的整数 (正面朝上的硬币不够用) 或 (反面朝上的硬币不够用)。
当然, 和 都是整数。
相关
在下列比赛中: