QOJ.ac

QOJ

時間限制: 4 s 記憶體限制: 256 MB 總分: 100 通信

#8870. 人力资源

统计

你在 ECorp 工作,人力资源部门正在将员工数据从 Hooli 提供的本地系统迁移到初创公司 Pied Piper 提供的全新云原生解决方案中。遗憾的是,新系统尚未实现与旧系统的功能对等,他们需要你的帮助来存储和展示整个管理结构。该系统非常精简且注重资源使用,因此他们只能负担得起增加两千比特的存储空间。

输入格式

输入的第一行是一个命令,执行 ENCODEDECODE

Encode

你将收到描述经理及其直接下属的行。所有行都将以经理的名字开头,后跟一个冒号,再后跟一个以空格分隔的直接下属列表,按从最受喜爱到最不受喜爱的顺序排列。冒号后有一个尾随空格。如果经理有上级,则该经理不会出现在其上级之前。

Decode

在解码情况下,你将获得你的程序在编码情况下打印的输出:一个包含所有员工名字的列表,顺序任意,每行一个,后跟一行二进制字符串 $B$。

数据范围

  • $2 \le$ ECorp 的员工总数 $\le 600$
  • $|B| \le 2048$
  • 员工名字最多 10 个字符,由英文字母的大小写组成。
  • 恰好有一名员工没有经理(公司 CEO),且没有员工拥有超过一名经理。

输出格式

Encode

你的程序必须首先输出所有员工的名字,每行一个,顺序任意(这是上层管理部门的要求)。额外的一行专门用于你的编码字符串 $B$,它必须由 0 和 1 组成,且长度不超过 2048 个字符。

Decode

以与原始输入相同的格式输出原始结构。经理定义的顺序不必相同,但如果某人有经理,则其定义必须出现在其经理之后。然而,对于任何特定经理,其下属的顺序必须保持不变(从最受喜爱到最不受喜爱)。

样例

输入 1

ENCODE
Janez: Josip Zofia
Zofia: Karolina

输出 1

Josip
Karolina
Janez
Zofia
00101100

输入 2

DECODE
Josip
Karolina
Janez
Zofia
00101100

输出 2

Janez: Josip Zofia
Zofia: Karolina

说明

上述示例中的编码对列表中的每个人使用了两个连续的字符。11 表示 CEO(Janez)。00 表示处于层级结构第二层的人。他们在 CEO 直接下属列表中的顺序与编码后的名字列表(Josip 和 Zofia)中的顺序相同。幸运的是,在这种情况下只有两个。10 表示 Zofia 的下属,而 01 将表示 Josip 的下属,但他没有下属。

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.