#62131. 机器人大赛
机器人大赛
暂无测试数据。
背景
机器人大赛上,蒜头君指着赛场上的一批机器人说:“这些机器人都受我控制。”
花椰妹:“吹牛!如果那些机器人都受你控制,我说指令,你让机器人做对应的操作。”
蒜头君:“保证完成任务~”
题目描述
在一个无限大的二维平面内有 $N$ 台机器人,编号为 $1\sim N$。在平面确定二维坐标系后,就知道每台机器人的位置了,第 $i$ 台机器人位于 $(x_i,y_i)$ 处。
接下来有 $Q$ 条指令,指令共有 $5$ 种:
M l r p q
:让编号在 $[l, r]$ 的范围内的机器人的横坐标加上 $p$,纵坐标加上 $q$;X l r
:让编号在 $[l, r]$ 的范围内的机器人沿 $x$ 轴翻转;Y l r
:让编号在 $[l, r]$ 的范围内的机器人沿 $y$ 轴翻转;O l r
:让编号在 $[l, r]$ 的范围内的机器人沿直线y = x
翻转;R l r a
:让编号在 $[l, r]$ 的范围内的机器人绕原点($(0,0)$ 点)逆时针旋转 $a^{\omicron}$ 。
你需要计算出执行完 $Q$ 条指令后,$N$ 台机器人的坐标分别是多少。
输入格式
第一行一个正整数 $N$,表示机器人的数量。
接下来 $N$ 行,每行两个实数 $x_i,y_i$,第 $i$ 行表示的两个实数表示第 $i$ 台机器人的位置坐标。
再输入一个整数 $q$ 表示指令的数量。
接下来 $q$ 行,每行表示一条指令,可以先输入一个操作类型 op
:
- 若
op = 'M'
,先输入两个整数l r
,再输入两个实数p q
; - 若
op = 'X'
,再输入两个整数l r
; - 若
op = 'Y'
,再输入两个整数l r
; - 若
op = 'O'
,再输入两个整数l r
; - 若
op = 'R'
,先输入两个整数l r
,再输入一个实数a
;
变量的含义如上所述。
输出格式
输出包括 $N$ 行,每行输出两个以空格隔开的实数(保留两位小数),代表着 $N$ 台机器人经过 $Q$ 次指令操作之后的坐标,先输出横坐标,再输出纵坐标。
数据范围
测试点 | $N,Q$ | 特殊性质 $1$ | 特殊性质 $2$ | 特殊性质 $3$ |
---|---|---|---|---|
$1$ | $\leq 1000$ | √ | √ | |
$2$ | $\leq 1000$ | √ | ||
$3$ | $\leq 1000$ | |||
$4$ | $\leq 100000$ | √ | √ | √ |
$5$ | $\leq 100000$ | √ | √ | |
$6$ | $\leq 100000$ | √ | √ | |
$7$ | $\leq 100000$ | √ | ||
$8$ | $\leq 100000$ | √ | ||
$9$ | $\leq 100000$ | |||
$10$ | $\leq 100000$ |
特殊性质 1:对于所有指令,保证 $l=1,r=N$。
特殊性质 2:不存在形如 $O,l,r$ 的操作。
特殊性质 3:不存在形如 $R,l,r,a$ 的操作。
对于所有测试数据,保证输入的 $x,y$ 坐标以及 $p,q,a$ 都最多保留两位小数,$0\le a < 360$,任何时刻任何机器人的横纵坐标的绝对值都不会超过 $10^5$。
3
1 2
-2 2.5
0 -3
3
X 1 3
M 1 3 3 6
R 1 3 90
-4.00 4.00
-3.50 1.00
-9.00 3.00