蓝眼睛岛屿

C. 蓝眼睛岛

描述

有个偏僻的岛屿,有一个1000人组成的部落,他们眼睛的颜色各不相同.岛上的人拥有天生的智慧与逻辑性.然而,随之而来的还有神秘的诅咒,诅咒使他们不能通过任何途径看到自己眼睛的颜色,而依附诅咒诞生的严苛宗教也不允许他们互相讨论眼睛颜色的话题.于是,所有的岛民都处在知晓所有其他人眼睛的颜色却不自知的状态里.

部落的宗教强制要求,如果岛民知道了自己眼睛颜色,那么他必须第二天中午在村子广场自杀,所有其他人都会立刻知道他的死讯.

在宗教的多年洗脑下,所有的岛民都相当虔诚,并且他们也知道所有其他岛民也拥有智慧,逻辑性和虔诚. “相当有逻辑”是指,通过已有信息能推出的所有合理结论,岛民都能立刻知晓.

在这 n 个岛民中,其实是有 a 人蓝眼睛和 n-a 人棕眼睛,全体岛民从开始就不知道这个统计值(当然他们每人都知道其他人眼睛的颜色).

一天,一个蓝眼睛的外来者来到了这个岛上,并且赢得了所有人的喜欢和信任. 一天晚上,他把所有岛民聚集起来,要感谢岛民热情的款待.可惜他并不知道这个岛的习俗,无意中犯错提及到了眼睛的颜色,说了一句:"啊,能看到这个世界上还有其他蓝眼睛的人是多么开心啊."

请问在这之后,是否会有岛上的居民因此自杀?

Input

两个整数 n(1 ≤ n ≤ 65536),a(1≤a≤n) 含义如上

Output

如果没有人会自杀,
输出-1;

如果有
从第一天开始,按顺序输出每天自杀的居民数量(如果当天没有居民自杀,则不输出当天的信息)
输出格式:
天数 人数
天数 人数
如样例1,表示第一天有一个人自杀

Examples

Input

1 1

Output

1 1

Input

2 1

Output

1 1

Input

2 2

Output

2 2

Hint

  1. 样例1中,岛上只有一个人,且是蓝眼睛.外来者告诉岛民岛上有蓝眼睛,该岛民立刻就意识到说的是自己,在之后的第一天就自杀了.
  2. 样例2中,岛上有一个蓝眼睛的人一个棕眼睛人.蓝眼睛者能看到另一个人是棕眼睛,结合外来者的话,能推出自己是蓝眼睛,因此在之后的第一天就自杀了.
  3. 样例3中,岛上有两个蓝眼睛的人.第一天,谁都不能确定自己眼睛颜色,因此无人自杀,第二天,两人通过对方的行为确定了自己是蓝色眼睛,因此都自杀了.

思路:

今天做了这道hin有意思的题~

说一下思路吧:

蓝2  棕0 这种情况,每个人都能看到一个蓝眼睛,若自己是棕色则第1天就会有人自杀,1天没人自杀,说明自己是蓝的,第2天2人自杀

棕色眼睛对蓝眼睛没干扰,比如蓝2 棕1, 蓝眼睛的看到1蓝1棕,棕眼睛能看到2蓝,棕眼睛不做参考,蓝眼睛做,蓝眼睛不能确定自己颜色,若自己是棕色,另一个蓝眼睛第1天会自杀,但第1天没人自杀,所以第2天2人都自杀

若3蓝n棕(棕色无影响)蓝眼睛的看到的有蓝有棕,若自己是棕眼睛,此时2个蓝眼睛,那么第2天一定有人自杀,(原因同上),但是第2天没人自杀,所以第3天3人自杀

……

以此类推

输出a a

即可

代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cmath>
#include<set>
#include<string>
#include<cstring>
#define ll long long
using namespace std;

int main(){
    int n,a;
    scanf("%d%d",&n,&a);
    printf("%d %d\n",a,a);
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值