#P14899. [OOI2017预选赛long]Бинарная игра二进制游戏
[OOI2017预选赛long]Бинарная игра二进制游戏
题目描述
Iskander 和 Olya 喜欢设计谜题。但比起设计谜题,他们更喜欢设计一些字符串游戏。这一次,他们想出了一个有趣的游戏,规则如下:
- 选择一组禁止出现的二进制字符串 ,这些字符串只由
0和1组成。 - 选择一个初始二进制字符串 ,使得没有任何禁止字符串作为子串出现在 中。
- 两名玩家轮流在字符串 的末尾添加一个字符
0或1。Olya 先手。 - 如果某名玩家走完之后,至少有一个禁止字符串 作为子串出现在 中,那么该玩家失败。
- 如果双方都采取最优策略时,游戏可以无限进行下去,则判为平局。
你非常喜欢破坏别人最爱的娱乐活动,因此决定编写一个程序,根据给定的禁止字符串集合和初始字符串 ,判断游戏结果。
输入格式
第一行包含两个整数 和 (,),分别表示禁止字符串的数量和初始字符串 的长度。
接下来 行,每行包含一个禁止字符串。保证所有禁止字符串非空,且只由字符 0 和 1 组成,并且没有任何一个禁止字符串是字符串 的子串。另保证所有禁止字符串的总长度不超过 。
最后一行包含长度为 的初始字符串 ,只由字符 0 和 1 组成。注意,字符串 可以为空;此时输入中对应的这一行不存在,包括换行符也不存在。
输出格式
根据双方最优策略下的游戏结果,输出以下三者之一:
Olya:如果无论 Iskander 怎么走,Olya 都可以获胜。注意 Olya 是先手。Iskander:如果无论 Olya 怎么走,Iskander 都可以获胜。Friendship:如果双方都采取最优策略时,游戏会无限进行下去。
样例 1
输入
1 0
1
输出
Friendship
样例 2
输入
3 1
000
001
011
0
输出
Olya
样例 3
输入
2 3
1001
000
100
输出
Iskander
样例解释
在第一个样例中,字符串 初始为空。任意玩家都可以在任意一步通过在 末尾添加字符 0 来避免失败。
评分方式
测试点分为五组。除样例测试外,只有通过某一组的全部测试,以及所有之前组的全部测试,才能获得该组分数。Offline 检测表示该组测试结果只会在比赛结束后公布。
下表中, 表示所有禁止字符串的总长度,即
| 组别 | 测试点 | 分数 | 附加限制 | 备注 |
|---|---|---|---|---|
| 0 | 1-3 | 0 | - | 样例测试 |
| 1 | 4-33 | 25 | $n \le 2,\ | f_i |
| 2 | 34-70 | $n \le 150,\ | ||
| 3 | 71-117 | $n \le 500,\ | ||
| 4 | 118-∞ | - | Offline 检测 |