#62131. 机器人大赛

    ID: 62131 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>计蒜客赛事提高T4/省选线段树数学魔扣OJ

机器人大赛

暂无测试数据。

背景

机器人大赛上,蒜头君指着赛场上的一批机器人说:“这些机器人都受我控制。”

花椰妹:“吹牛!如果那些机器人都受你控制,我说指令,你让机器人做对应的操作。”

蒜头君:“保证完成任务~”

题目描述

在一个无限大的二维平面内有 $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