AT_abc013_4.[ABC013D] 阿弥陀
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你知道从古至今传承下来的日本传统抽签方法——鬼脚图(日语:阿弥陀籤/あみだくじ)吗?
进行鬼脚图时,首先画出 N 条平行的竖线。接着,在这些竖线之间画 M 条横线。每条横线必须连接相邻的两条竖线,且不能有两条或更多的横线在完全相同的高度上。假设从上往下数的第 i 条横线连接了从左往右数的第 Ai (1≤Ai<N) 条竖线和第 Ai+1 条竖线。
以下是 N=5,M=7,A={1,4,3,4,2,3,1} 情况下的鬼脚图示例。抽签时,从某条竖线的顶部出发,沿着线向下走。当遇到横线时,必须转弯,且不能回头向上。例如,在这个鬼脚图中,从左往右数第 4 条竖线顶部开始,最终会到达左边数第 3 条竖线的底部。

以上是普通的鬼脚图。然而,在“大数据”这一术语流行的当下,鬼脚图若想在未来继续存在下去,也需要“大”起来,以迎战“大数据”。
因此,我们考虑通过将多个鬼脚图纵向连接 D 次,构造一个巨大的鬼脚图。例如,将上面提到的鬼脚图纵向连接 2 次,可以得到如下示例。在这种情况下,从左边数第 4 条竖线顶部开始抽签,最终会到达左边数第 5 条竖线的底部。

虽然我们构造了如此巨大的鬼脚图,但如果无法高效计算抽签的结果,这个巨大的鬼脚图也不过是徒有其表的涂鸦。因此,请编写一个程序,对于满足 1≤k≤N 的每个整数 k,计算在巨大鬼脚图中,从左边数第 k 条竖线顶部开始抽签,最终会到达左边数第几条竖线底部。
输入格式
输入以以下格式通过标准输入提供:
N M D A1 A2 ⋯ AM
- 第 1 行包含 3 个整数,表示初始鬼脚图的竖线数量 N(2≤N≤105)、横线数量 M(0≤M≤2×105)、以及将初始鬼脚图纵向连接的次数 D(1≤D≤109)。
- 第 2 行包含 M 个整数 A1,A2,⋯,AM(1≤Ai<N),表示每条横线的连接信息。
输出格式
输入输出样例
输入#1
5 7 1 1 4 3 4 2 3 1
输出#1
4 2 5 3 1
输入#2
5 7 2 1 4 3 4 2 3 1
输出#2
3 2 1 5 4
输入#3
10 20 300 9 1 2 5 8 1 9 3 5 6 4 5 4 6 8 3 2 7 9 6
输出#3
3 7 2 4 5 9 6 1 8 10
输入解题思路,AI测评打分。不知道怎么写?