#Z0019. Asm.Def的命令

Asm.Def的命令

题目描述

“直升机十分钟后到达!冲冲冲!”

Asm.Def和两名特战队员抱着步枪,在烟雾的掩护下冲出计算中心大门。一旁的队友连续射出几枚枪榴弹,压制住了机器人的火力。

Asm.Def蹲在喷泉水池后,伸出步枪向外扫射——这成功地吸引了机器人的注意,一排子弹打在喷泉里,溅起朵朵水花。他用余光看到,突击组正按照计划,拎起反坦克火箭筒,弯腰冲向广场侧面。

Asm.Def需要重新部署他的小队形成防御阵型。广场可以看做一个二维坐标平面,小队有n个人,从1到n编号,一开始i号人的位置是(0,i)。Asm.Def可以向小队成员下达如下三种命令:

0 a:查询a号人的位置。其中1<=a<=n。

1 a b dx dy:将a~b号人的x坐标同时加上dx,y坐标加上dy。其中1<=a<=b<=n。dx、dy都是整数。

2 a b deg:将a~b号人的位置同时绕原点逆时针旋转deg角度。其中1<=a<=b<=n。deg是整数。

输入格式

第一行两个整数n,q,代表共n个人,q个操作。

接下来q行,每行一个命令,是上述三种格式之一。

输出格式

对每个0命令,输出一行两个实数x,y,表示a号人的坐标。保留一位小数。

样例

####输入样例

5 6
1 1 3 -2 0
0 2
2 1 5 90
0 1
0 2
0 5

####输出样例

-2.0 2.0
-1.0 -2.0
-2.0 -2.0
-5.0 0.0
```

## 数据范围与提示

对于40%的数据,只有0和1命令,n,q<=1000.

对于另外30%的数据,只有0和1命令,n,q<=10^5.

对于剩下30%的数据,包含0、1、2三种命令,n,q<=10^5.

对于100%的数据,所有坐标不超过10^5.

提示:注意本题时限