问题 4736 --博弈论

4736: 博弈论★★

时间限制: 2 Sec  内存限制: 256 MB
提交: 11  解决: 6
[提交][状态][命题人:]

题目描述

  博博Mike和雄雄Ann坐在教室里。课非常无聊,于是他们决定玩一个有趣的游戏,幸运的是,他们玩的游戏只有一个字符串s和一个数字k0<=k<=|s|)。

  在游戏最初,玩家得到字符串s的一个子串和左边界l与右边界r,两者都等于k(最初l=r=k)。然后玩家开始根据以下规则一个接一个地移动:

  一个玩家选择lr,要求l<=l;r>=r并且s[l,r]的字典序小于s[l,r]。然后玩家这样改变lrl=l,r=r’。

  雄雄第一个移动。

  不能按规则移动的玩家失败。

  注意:s的子字符串s[l,r]是一个从l开始到r结束连续的字符段。例如,ehn”是”aaaehnsvz的一个子串(s[3,5])ahz”不是。

  博博和雄雄兴高采烈地玩以至于没注意到老师走了过来。惊讶的是老师并没有批评他们,相反,说只要知道sk他就可以在他们开始游戏之前找出谁是赢家。

  不幸的是,博博和雄雄对博弈论并不关注,所以他们请你写一个程序,给出一个s,决定所有情况的赢家。

输入

第一行输入是一个单独的字符串s(1<=|s|<=5*10^5),全为小写字母。

输出

|s|行,在第i行输出最初k=i的赢家名字,假设两个人都发挥最优。

如果博博赢,则输出“Mike”; 如果雄雄赢,则输出"Ann"

样例输入
Copy
abba
样例输出
Copy
Mike
Ann
Ann
Mike

提示

样例2输入

cba

样例2输出

Mike
Mike
Mike

来源

[提交][状态]