小红和小明的数字游戏
题目描述
小红和小明在玩一个数字游戏,游戏规则如下:开始时有一个数字n,
小红和小明依次对这个数字进行操作,每次操作,都可以使这个数字
增加1到N之间的任意整数,在谁加完数字之后能使得这个数字的大小
大于或者等于m,他就能够取得游戏的胜利,小红和小明都想取得游
戏的胜利,假设他们都在自己的最优策略之下,由小红先开始操作,
请问,小红一开始给这个数字加上多少,才能保证自己取得游戏的
胜利呢?
输入
先输入一个整数T,T表示输入数据的组数,其中(0<T<=100),
再在每一行输入三个数n,N,m,其中(0<n<m<=1000)且(1<N<=100)。
输出
小红想要获胜的话,开始时应该加多少,如果有多种情况的话,按从小到
大输出所有的数字,两个数据之间用空格隔开,如果无论小红开始加多少
都不能胜利的话,输出“-1”。
样例输入
3
2 2 6
6 4 11
3 5 6
样例输出
1
-1
3 4 5
题解:
如果N<(m+n),由于两个人每次加数字都是加1-N,所以两个人在各
加一次数字之后,一定能够使得数字恰好增加(N+1),故我们用
(m-n)除以(N+1),如果(m-n)不能被(N+1)整除,则小红第
一次只要加(m-n)%(N+1),就一定能够取得游戏的胜利,但是如
果能被整除的话,小红一定不能取得游戏的胜利,如果N>=(m+n),
说明小红一开始的时候只要加(N-m-n)到N之间的任意数字,都能够
使得n的最终大小大于或等于m,故依次输出符合这个区间的整数即可。
【本博客无Code】