logo AlgoBeat OnlineJudge
登录 注册

#214673. [IO 2024 #3] 莫图努伊部落的语言

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

对我们来说,屏幕上当然显示的是说我们母语的角色,但莫图努伊部落的母语要复杂得多。

该语言总共有 个字母,每个字母对应的声音我们用数字 表示。不同的字母可能对应相同的声音。该语言中恰好有 个单词,每个单词都是这 个字母的任意子序列(单词中字母的顺序与字母表中的顺序一致)。

表示按字典序排列的第 个单词的 发音。即取该语言的所有单词,写出每个单词的声音序列,并按升序排列这些序列。这里我们认为单词 小于单词 ,如果要么 的声音序列是 声音序列的前缀,要么 中第一个不同的声音小于 中对应的声音。

你的任务是找到莫图努伊岛部落语言中发音最小的 个单词。由于这些单词的总长度可能过大,请改为输出这些单词的哈希值,其中单词 的哈希值为

其中 是预先给定的参数。

输入格式

第一行输入包含整数 ——分别表示字母表中的字母数量、你感兴趣的单词数量和哈希参数()。

第二行列出 个整数 ——每个字母的声音编号()。

输出格式

对于按字典序排列最小的 个语言单词,依次输出它们发音的哈希值,每行一个。

样例

样例输入 1

2 3 1 5
1 2

样例输出 1

1
3
2

样例输入 2

3 4 2 3
1 3 1

样例输出 2

1
1
0
2

样例输入 3

5 6 23 1000
1 2 4 2 3

样例输出 3

1
25
25
577
274
578

数据范围与提示

在第一个样例中,单词的顺序为:

在第二个样例中,单词的发音为:


翻译由 DeepSeek V3 完成