#2636. crisis

crisis

题目描述

某地爆发了经济危机,反对派武装发动造反。你任某军军长,负责消灭该地的反对派武装力量。由于你英勇神武,战无不克,很快,反对派武装就被基本消灭。残部退守到位于 (0,0)(0,0) 附近的大本营。你决定包围它,然后择日发起总攻。你将对士兵下达命令。例如第 11 旅和第 22 旅向西行军 500500 公里,第 22 旅和第 33 旅绕着大本营巡逻,吸引敌军注意。当然,有时候你发现你的一些部署不大妥当,连忙撤销之前下达的一些命令。部署后,作为一名一丝不苟的少将,你一定要抽查一些士兵的位置是否恰好达到了预定的位置。当然,你首先要算出被抽查士兵应该所处的位置才行。

输入格式

第一行是一个数 nn,表示你的麾下士兵的总数。
接下来 nn 行,每行两个数,表示每个士兵在开始行动前所处的位置。接下来一个数 qq,表示操作个数。
qq 行,每行是一个操作。一共有 66 种可能的操作。操作分为 33 类命令,撤销和重做,询问。
命令有三种:

  1. Move i j a b(第 ii 个士兵到第 jj 个士兵向东移动 aa 米,向北移动 bb 米);
  2. Patrol i j a(第 ii 个士兵到第 jj 个士兵绕着敌军大本营逆时针巡逻 aa 弧度);
  3. Lurk i j(第 ii 个士兵到第 jj 个士兵潜伏到敌军大本营)。

撤销和重做:

  1. Cancel a(撤销最后 aa 次要被执行的(移动,巡逻或潜伏)命令);
  2. Redo a(重做最后 aa 个被撤销的命令)。

询问 :

  1. Ask i(询问第 ii 个士兵应处的位置)。

输出格式

对每个询问输出一行,每行两个数,代表被询问的士兵应处的位置。你的输出与参考答 案的误差少于 0.00010.0001 即视为正确。

10
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
15
Lurk 1 5
Move 1 5 100 100
Move 1 1 100 100
Move 1 1 10 0
Move 1 1 0 10
Cancel 1
Cancel 1
Patrol 6 10 3. 1415926535897932
Patrol 6 8 1. 57079632679489661
Move 2 7 -100 0
Cancel 2 
Ask 1
Ask 10
Redo 1
Ask 5
200 200
-1 -10
100 100

数据规模与约定

你早已摸清了反对派武装的脾气,知道他们不敢贸然行动,因此即使你 大本营,在你未主动攻击之前,敌人也不会攻击你的土兵。 另外一个军的人数一般为 150002000015000-20000 人。 不会有超过 5×1045 \times 10^4 次操作。 另外,考虑到潜伏是十分危险的行动,大概有 60%60\% 的数据不含潜伏。