#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.