#B1247. 模拟区间反序

模拟区间反序

【题目描述】

给定一个长度为 nn 的序列,第 ii 个元素记为 aia_i。

接下来进行 mm 次操作。第 ii 次操作给出两个整数 li,ril_i,r_i,将当前序列中下标从 lil_i 到 rir_i 的所有元素反序。

请输出完成全部 mm 次操作后的序列。


【输入描述】

第一行输入两个整数 n,mn,m,分别表示序列长度和操作次数。

第二行输入 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示初始序列。

接下来 mm 行,第 ii 行输入两个整数 li,ril_i,r_i,表示将当前序列中下标从 lil_i 到 rir_i 的所有元素反序。

保证:

  • 1≤n,m≤10001\le n,m\le1000;
  • 1≤li≤ri≤n1\le l_i\le r_i\le n。

【输出描述】

输出一行 nn 个整数,表示完成全部操作后的序列,相邻两个整数之间用一个空格分隔。


【样例 1】

【样例 1 输入】

5 2
1 2 3 4 5
2 4
1 3

【样例 1 输出】

3 4 1 2 5

【样例 1 解释】

初始序列为 [1,2,3,4,5][1,2,3,4,5]。

  • 第一次将下标 22 到 44 的元素反序,序列变为 [1,4,3,2,5][1,4,3,2,5];
  • 第二次将下标 11 到 33 的元素反序,序列变为 [3,4,1,2,5][3,4,1,2,5]。

因此最终输出 3 4 1 2 5。


【样例 2】

【样例 2 输入】

8 4
9 1 7 3 8 2 6 4
1 8
3 6
2 7
4 4

【样例 2 输出】

4 1 2 8 3 7 6 9