【问题描述】
——“队爷磊少,性行淑均,晓畅算法,试用于昔日,OL称之曰‘能’,是以众议举磊为爷。愚以为不会之题,悉以咨之,必能使水平提高,成为大佬。”
但是HZM问了他一道题他却不会了,为了保障他的名声,他偷偷来问你:
平面上有一个有 $n$ 段首尾相连的机械臂,初始放在y轴上。他们的起点固定在原点,每一段机械臂可以绕平面自由旋转。接下来有 $m$ 个操作,让你把 $i+1$ 这一段围绕 $i$ 旋转至逆时针 $\alpha^\circ$,输出每次操作后末尾点的位置。
【输入格式】
输入文件名为 can.in
。
第一行两个整数 $n,m$,分别表示机械臂段数和操作数。
第二行 $n$ 个整数表示每一段的长度。
接下来 $m$ 行,每行两个整数 $x$,$\alpha$。
【输出格式】
输出文件名为 can.out
。
$m$ 行,每一行输出两个实数表示操作后末尾点的位置,保留一位小数。
【输入输出样例1】
3 2
5 5 5
1 270
2 90
-10.0 5.0
-5.0 10.0
见选手目录下的 can1/can1.in
和 can1/can1.ans
。
【样例解释1】
以上三张图分别表示初始或操作之后的位置。
【输入输出样例2】
见选手目录下的 can2/can2.in
和 can2/can2.ans
。
【数据规模与约定】
对于所有测试点,$n,m \leq 10^5$,$l_i \leq 100$,$1 \leq x < n$,$0 \leq \alpha \leq 359$
对于 $30\%$ 的测试点,$n,m \leq 1000$。