QOJ.ac

QOJ

Límite de tiempo: 4 s Límite de memoria: 1024 MB Puntuación total: 100

#4073. 导入意大利面

Estadísticas

你刚从编程学校毕业,找到了一份 Python 编程的工作。上班第一天,你意识到你接手的是一团乱麻。前任维护者(最近已经逃往国外)选择了“意大利面条式”的设计模式。你试图理清代码,但很快发现不同的文件之间存在循环依赖。事实上,代码的测试和运行工作尚未开始。

在你坐下来思考后,你决定首先要做的是消除依赖图中的循环。因此,你从寻找一个最短的依赖循环开始。

输入格式

输入的第一行包含一个数字 $n$ ($1 \le n \le 500$),表示文件的数量。接下来一行包含 $n$ 个文件名。每个文件名是一个长度至少为 1 且至多为 8 的小写字母('a' 到 'z')字符串。随后是 $n$ 个部分,每个文件对应一个部分,顺序与第二行给出的顺序一致。每个部分以一行包含文件名和一个整数 $k$ 开头,随后是 $k$ 行,每行以 “import” 开头。

每个 “import” 行是一行以逗号加空格分隔的依赖项。没有文件会多次导入同一个文件,且每个被导入的文件都在输入的第二行中列出。逗号加空格分隔意味着每一行都将以 “import” 开头,然后是一个由 “, ” 分隔的类名列表(参见样例输入)。

输出格式

如果代码库中没有循环依赖,输出 “SHIP IT”。否则,输出一行包含最短循环中文件名的内容,按循环顺序排列。如果存在多个最短循环,输出其中任意一个即可。

样例

样例输入 1

4
a b c d
a 1
import d, b, c
b 2
import d
import c
c 1
import c
d 0

样例输出 1

c

样例输入 2

5
classa classb myfilec execd libe
classa 2
import classb
import myfilec, libe
classb 1
import execd
myfilec 1
import libe
execd 1
import libe
libe 0

样例输出 2

SHIP IT

样例输入 3

5
classa classb myfilec execd libe
classa 2
import classb
import myfilec, libe
classb 1
import execd
myfilec 1
import libe
execd 1
import libe, classa
libe 0

样例输出 3

classa classb execd

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.