CSG-CPC
Online Judge

1306 : 单链表的操作

         Time Limit: 1 Sec     Memory Limit: 256 MB     Submitted: 67     Solved: 19    

Description

给两组数以及一系列操作,或者把前一组的某个数移出并插入到后一组的特定位置,或者反之. 最终按要求输出第一组数的一部分.

Input

第一行 \(1\leq n \leq 10^7\)\(1 \leq m \leq 1000\) 表示两组数都为 \(n\) 个,并有 \(m\) 次操作.

每组数都编号为 \(1 \sim n\) ,第一组数的第 \(i\) 个数定义 (int)(10000 * sin(n + i)),第二组数的第 \(i\) 个数定义为(int)(10000 * sin(m + i)).

接下来 \(m\) 行每行三个数 \(flag, ix, iy\)

  • \(flag\)0 时,表示第组数的第 \(ix\) 个数移出,插入至第组数的第 \(iy\) 个位置
  • \(flag\)1 时,表示反向操作,第组数的第 \(ix\) 个数移出,插入至第组数的第 \(iy\) 个位置

最后输入两个整数 \(start, end\),要求输出第一组数在所有操作之后的 \([start, end)\) 左闭右开区间的数.

其中 \(1 \leq ix, iy, end - start \leq 100\),所有操作以及输出涉及的序号或区间保证合法,都在对应时刻数据数量的范围内.

Output

按要求输出,每行一个数.

Sample

5 4
1 4 4
1 3 4
0 5 0
1 0 2
5 7

##CASE##
6 5
1 3 4
1 3 3
0 6 1
0 3 0
1 3 0
2 7
6569
4121

##CASE##
6569
9893
4121
9893
-9999

Hint

Author

CSGrandeur