题目描述
河里有 n 块石头,可以看成数轴上的 n 个正整数点,其中第 i 块石头对应的位置用正整数 Xi 表示,保证位置两两不同。
一只青蛙在这些石头上跳。如果青蛙在第 i 块石头上,它会从近到远找到离它第 k 近的石头 j。如果有两块石头都是第k 近的,则找到的是 Xj 较小的一块 。青蛙一步会从i跳到j 上。
特别地,如果两个石头同时是第k 近的,他们也同时是第k+1近的,关于这句话可以看样例解释。
现在对于每块石头 i,都需要输出从这块石头出发,跳恰好 m 步会跳到哪块石头上。
输入格式
从标准输入读入数据。
第一行有 3个由空格隔开的整数n、k和m。保证 n,k<=106,m<=1018。
第二行有 n个正整数,第i个数表示第i 块石头离左岸的距离Xi。保证输入的 n个正整数严格递增,并且不超过 1018。
输出格式
输出到标准输出。
一行 n个由空格隔开的整数,第i 个表示青蛙从第i块石头开始跳,跳 m次后会在哪个石头上。
老师说用走指针+倍增链表,但是我还是有些没懂,最近老师又不在,所以求大佬讲解