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
来源Source
算法竞赛入门-线性表-链表