#1879. 病狗问题
病狗问题
病狗问【出题者:yyxh】【测试点:yyxh】
题目描述
村子中有 n 个人,每人有一条狗,每天傍晚大家都在同一个地方遛狗。在这 n 条狗中有至少一只病狗(不变)。于是人们就要找出病狗。每个人可以观察其他的 n-1 条狗,以判断它们是否生病,只有自己的狗不能准确判断。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只能枪毙自己的狗,不能打死其他人的狗。每个人都是一样极其理智的。第 1,...,k-1 天都没有有枪响。到了第 k 天村子传来一阵(可超过一声)枪声,问有几条病狗?
输入格式
第一行整数 n; 第二行整数 k.
输出格式
若这种状态不可能发生: 第一行-1.
第一行整数 m 表示病狗数量.
样例 #1
样例输入 #1
5
1
样例输出 #1
1
样例 #2
样例输入 #2
2
3
样例输出 #2
-1
提示
【样例解释#1】
第1天传来枪声,说明某人观察4条狗,均没有病,推断出自己的狗是病狗,将其击毙,故共有1条病狗。
【样例解释#2】
若第1天发现对方是正常狗,则自己的狗是病狗,第1天击毙;
若第1天发现对方是病狗,按照上一条,若你的是正常狗则对方将判断出自己病狗并击毙,若第一天对方没有击毙,则说明你的也是病狗,第2天两人一起将自己的病狗击毙;
不存在第三天的情况,故输出-1。
【数据范围】
对于25%的数据,n,k为整数,n=1;
对于另外25%的数据,n,k为整数,n<k;
对于100%的数据,n,k为整数,1≤n,k≤2^64-1.