#P3509. [POI 2010] ZAB-Frog

    ID: 2563 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划,dp2010倍增POI深度优先搜索,DFS

[POI 2010] ZAB-Frog

Description

在一个特别长且笔直的 Byteotian 小溪的河床上,有 nn 块石头露出水面。它们距离小溪源头的距离分别为 p1<p2<<pnp_1 < p_2 < \cdots < p_n。一只小青蛙正坐在其中一块石头上,准备开始它的跳跃训练。每次青蛙跳跃到距离它所在石头第 kk 近的石头上。具体来说,如果青蛙坐在位置 pip_i 的石头上,那么它将跳到这样的 pjp_j 上,使得:

$$|\{ p_a : |p _ a - p _ i| < |p_j - p_i| \}| \le k \text{ and } |\{ p_a : |p _ a - p _ i| \le |p_j - p_i| \}| > k$$

如果 pjp_j 不是唯一的,那么青蛙在其中选择距离源头最近的石头。对于每一块石头分别计算,若青蛙从这块石头开始跳跃,经过 mm 次跳跃后最终会停留在哪一块石头上?

Input Format

标准输入的第一行包含三个整数 nnkkmm1k<n1000000,1m10181 \le k < n \le 1\,000\,000, 1 \le m \le 10^{18}),用空格分隔,分别表示石头的数量、参数 kk 和计划跳跃的次数。第二行包含 nn 个整数 pjp_j1p1<p2<<pn10181 \le p_1 < p_2 < \cdots < p_n \le 10^{18}),用空格分隔,表示小溪河床上连续石头的位置。

Output Format

你的程序应在标准输出上打印一行,包含 nn 个整数 r1,r2,,rnr_1, r_2, \cdots, r_n,用空格分隔。数字 rir_i 表示从输入顺序中的第 ii 块石头开始跳跃 mm 次后,青蛙最终停留的石头编号。

5 2 4
1 2 4 7 10
1 1 3 1 1

Hint

样例 #1 解释:

图中展示了青蛙从每块石头跳跃(单次跳跃)到的位置。

题面翻译由 ChatGPT-4o 提供。