CF555D Case of a Top Secret
题目描述
平面上有 $n$ 个钉子,从 $1$ 到 $n$ 编号,第 $i$ 个钉子的坐标是 $(x_i,0)$。
把一个长度为 $L$,带重物的绳子系到第 $i$ 个钉子上,即重物所在的坐标是$(x_i,-L)$。然后将重物向右推,绳子开始逆时针旋转。
如果旋转的过程中绳子碰到其它的钉子,就会绕着那个钉子旋转。
如果绳子碰到多个钉子,那么它会绕着离刚才的钉子的最远的那个钉子转。(参考图示)
如果绳子的末端碰到了一个钉子,那么绳子也会绕着那个钉子、以长度为 $0$ 的在转。
每个钉子都很细,重物绕着它旋转时,不影响到绳子的长度。
经过一段时间之后,重物就会一直绕着某个钉子转。
现在有 $m$ 个查询,每个查询给出初始的绳子长度以及挂在哪个钉子下旋转,请找出重物最终会绕哪个钉子旋转。
输入格式
第 $1$ 行两个整数 $n,m$,分别表示钉子数和绳子重物数。
第 $2$ 行 $n$ 个整数 $x_i$,表示钉子的横坐标。
接下来 $m$ 行,每行两个整数 $a_i,l_i$,表示绳子绑在第 $a_i$ 个钉子上,绳长 $l_i$。
输出格式
$m$ 行,每行一个整数,表示第 $i$ 根绳子最终绕着转的钉子编号。
说明/提示
$1\le n,m\le 2\times10^5$
$1\le a_i\le n$
$-10^9\le x_i\le 10^9$
$1\le l_i\le 10^9$
翻译修改自[题解](https://www.luogu.com.cn/blog/SJYAKIOI/solution-cf555d)