#HK5088. 「POI2019 R3」旅行者聚会 Globetrotter Congress
「POI2019 R3」旅行者聚会 Globetrotter Congress
题目描述
题目译自 XXVI Olimpiada Informatyczna – III etap Zjazd obieżyświatów
旅行者协会计划举办盛大的旅行者聚会。然而,大多数旅行者忙于环球旅行,组织活动颇具挑战。协会有 名旅行者,他们在由 个庇护所和单向路径连接的世界中游历。旅行者每日更换庇护所,每个庇护所都有若干路径通往其他庇护所,确保他们不会停留。
已知宣布聚会当天每位旅行者的起始庇护所,请判断他们是否能在某庇护所相聚,若可行,计算最快需要多少天。
输入格式
第一行包含三个整数 $(2 \leq n \leq 250, n \leq m \leq n^2, 2 \leq k \leq n)$,分别表示庇护所数、路径数和旅行者数。庇护所编号为 至 。
第二行包含 个整数 ,表示第 位旅行者初始所在的庇护所。
接下来的 行描述路径,每行包含两个整数 ,表示第 条路径从庇护所 通往 。路径不重复,每个庇护所至少有一条向外的路径。
输出格式
若旅行者无法相聚,输出一行 NIE。
否则,第一行输出 TAK,第二行输出一个整数,表示最少天数,使所有旅行者能在某庇护所相聚。
5 7 3
1 2 3
1 2
1 3
2 3
3 4
4 1
4 5
5 1
TAK
3

图示庇护所和路径,深色标记旅行者初始位置。旅行者可能的路线为:
$$1 \rightarrow 3 \rightarrow 4 \rightarrow 1, \quad 2 \rightarrow 3 \rightarrow 4 \rightarrow 1, \quad 3 \rightarrow 4 \rightarrow 5 \rightarrow 1. $$5 5 3
1 2 3
1 2
2 3
3 4
4 5
5 1
NIE

附加样例
- ,简单样例。
- ,对于 ,存在路径 ;另有路径 和 。
- ,循环 ,每庇护所可通往下一庇护所或自身(满足子任务 条件)。
- ,循环 ,每庇护所可通往下一庇护所或下下庇护所。
数据范围与提示
若仅第一行输出正确,可获 的分数,但程序需在时间和内存限制内正常终止。
详细子任务附加限制及分值如下表所示。
| 子任务 | 附加限制 | 分值 |
|---|---|---|
| 每庇护所可留原地, | ||
| 无附加限制 |
正式地说,子任务 保证每个庇护所存在路径返回自身。