小红和小明的数字游戏

小红和小明的数字游戏

题目描述

小红和小明在玩一个数字游戏,游戏规则如下:开始时有一个数字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】

AC

猜你喜欢

转载自blog.csdn.net/m0_45682806/article/details/107959713