1306 : 单链表的操作
时间限制Time Limit
1
秒Sec
内存限制Memory Limit
256
兆MB
提交次数Submitted
437
次Times
通过次数Solved
76
次Times
标准评测Standard Judge
题目描述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
出题Author
CSGrandeur