P3405【Codeforces #310 div1 D】Case of a Top Secret | |
|
问题描述
Andrewid在墙上钉了n颗钉子,编号从1到n,第i颗钉子的坐标是(xi,0)。
Andrewid喜欢在钉子上用不可伸长的细绳悬挂一个重物,当重物竖直下垂时向右推重物,使重物绕着钉子旋转起来。设重物挂在第i个钉子上,绳子长度为l,则竖直下垂时重物的坐标是(xi,-l)。重物开始旋转之后,细绳可能会碰到钉子,钉子会阻碍绳子的运动,使重物绕着这个钉子旋转。如果绳子同时碰到了多个钉子,那么重物会绕着与上次的钉子最远的一颗钉子旋转,而旋转的半径也会变成剩下绳子的长度。不妨认为钉子很小,绕过钉子不会减少绳子的长度。特别的,如果剩下的绳子长度为0,重物会绕着这个钉子旋转。
显然,重物最终会绕着某一个钉子一直旋转下去,根本停不下来。Andrewid一共玩了m次,每次都希望你告诉他那颗钉子的编号。Andrewid推重物时力气很大,整个过程中绳子都是绷紧的。
输入格式
第一行两个整数n,m,表示钉子的数量和Andrewid玩重物的次数。
第二行n个整数x1,x2,...,xn,表示每颗钉子的横坐标。保证互不相同。
接下来m行,每行两个整数ai,li,表示在编号为ai的钉子下面用长度为li的绳子挂了一个重物。
输出格式
输出m行,第i行输出一个整数,表示玩第i次时最终重物旋转围绕的钉子编号。
样例输入
样例输入1:
3 2
0 3 5
2 3
1 8
样例输入2:
4 4
1 5 7 15
1 4
2 15
3 16
1 28
样例输出
样例输出1:
3
2
样例输出2:
2
4
3
1
提示
样例解释:
第一组
第二组
数据范围:
1<=n,m<=2*105
-109<=xi<=109
1<=ai<=n
1<=li<=109