#P11396. [COCI 2017/2018 #5] Planinarenje

[COCI 2017/2018 #5] Planinarenje

题目描述

米尔科和斯拉夫科喜欢一起徒步旅行。米尔科喜欢山峰,而斯拉夫科喜欢山谷。因此,每次他们爬到一个山峰时,斯拉夫科决定他们要下到哪个山谷,前提是有通往该山谷的小径。同样地,在每个山谷中,米尔科决定他们要爬上哪个山峰。永远不可能直接从一个山峰爬到另一个山峰,或从一个山谷到另一个山谷。为了使徒步旅行尽可能有趣,他们从不重复访问同一个地点(无论是山峰还是山谷)。一旦他们到达一个只能通往他们之前访问过的地点的地方,他们就会叫山地救援队来接他们。如果最后一个地点是山峰,米尔科获胜;如果是山谷,斯拉夫科获胜。

显然,你已经知道你的任务是什么:如果我们假设他们两个都以最佳方式进行游戏,谁会获胜?请为所有初始山峰回答这个问题。

输入格式

第一行包含两个正整数,NNMM1N50001 \leq N \leq 50001Mmin(5000,NN)1 \leq M \leq \min(5000, N \cdot N))。这里 NN 表示山峰和山谷的数量(因此,有 NN 个山峰和 NN 个山谷),而 MM 表示徒步小径的数量。

接下来的 MM 行中的每一行包含两个正整数:viv_idid_i1vi,diN1 \leq v_i, d_i \leq N),表示在山峰 viv_i 和山谷 did_i 之间有一条小径。每对山峰和山谷之间最多存在一条小径。

输出格式

你必须输出 NN 行。第 ii 行表示如果起点是山峰 ii,谁是获胜者。

输入输出样例 #1

输入 #1

2 3
1 2
2 2
2 1

输出 #1

Slavko
Slavko

输入输出样例 #2

输入 #2

4 5
2 2
1 2
1 1
1 3
4 2

输出 #2

Slavko
Mirko
Mirko
Mirko

输入输出样例 #3

输入 #3

4 5
1 2
1 3
2 2
2 3
4 1

输出 #3

Slavko
Slavko
Mirko
Slavko

说明/提示

在占总分数 30% 的测试用例中,将满足 1N101 \leq N \leq 101MNN1 \leq M \leq N \cdot N

在额外占总分数 20% 的测试用例中,对于每两个连接的地点之间,将存在唯一的路径。换句话说,图将是一个森林。

第二个测试用例的说明:

从第一个山峰开始,斯拉夫科可以选择去第一个山谷,所以斯拉夫科获胜。

从第二个山峰开始,斯拉夫科可以选择去第二个山谷,之后米尔科通过选择去第四个山峰获胜。

从第三个山峰开始,没有小径,所以米尔科获胜。

从第四个山峰开始,斯拉夫科必须选择去第二个山谷,之后米尔科通过选择第二个山峰获胜。