4464: 「POI2010」青蛙 Frog

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

**译自 POI 2010 Stage 3. Day 1「[Frog](https://szkopul.edu.pl/problemset/problem/qDH9CkBHZKHY4vbKRBlXPrA7/site/?key=statement)」** 在 Byteotian 的小溪上有 $n$ 个岩石在水位线上,这些岩石到源头的距离分别为 $p_1, p_2, ..., p_n$。在其中的一个岩石上有一只小青蛙准备开始训练。每一次,它会选择距离它第 $k$ 近的岩石。严格地说,如果青蛙某时刻在 $p_i$ 位置,则它会选择 $p_j$ 位置使得同时满足: $$|{p_a:|p_a-p_i|<|p_j-p_i|}| \le k$$ $$|{p_a:|p_a-p_i|\le|p_j-p_i|}| \gt k$$ 如果这样的 $p_j$ 不唯一,则青蛙会选择距离源头最近的那一个。对每一个小青蛙初始时可能在的岩石,求 $m$ 次跳跃后青蛙所在的位置。

输入

第一行有三个整数 $n,k,m$,用空格分隔,分别表示岩石的总数,参数 $k$,以及跳跃的次数。 第二行有 $n$ 个整数 $p_j$,用空格分隔,表示河面上岩石的位置。

输出

输出一行 $n$ 个整数 $r_1, r_2, ..., r_n$,其中 $r_i$ 表示从第 $i$ 个岩石开始连续跳跃 $m$ 次后青蛙所在的位置。

样例输入 复制

5 2 4
1 2 4 7 10

样例输出 复制

1 1 3 1 1

提示


数据范围:对于 $100\%$ 的数据, $1 \le k \lt n \le 1000000, 1 \le m \le 10^{18} , 1 \le p_1 \lt p_2 \lt ... \lt p_n \le 10^{18}$ 。

来源/分类