Problem8405--STL 函数使用 —— reverse()

8405: STL 函数使用 —— reverse()

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

【介绍】

【头文件】

Standard Template Library: Algorithms
#include<algorithm>

【作用】

Reverse range
Reverses the order of the elements in the range [first,last).
template <class BidirectionalIterator>
  void reverse (BidirectionalIterator first, BidirectionalIterator last);

【任务】

我们通过本题,掌握 reverse() 函数使用方法。
给一个长度为 $n$ 的数列,数列中可能有若干相同数据,从小到大输出不同数据。

Input

第一行给一个整数 $n\ (10^2 \leq n \leq 10^3),\ m\ (10^3 \leq m \leq 10^3)$。表示我们有一个长度为 $n$ 的数列。我们有 $m$ 次操作。
第二行包括 $n$ 个整数 $a_i\ (-10^9 \leq a_i \leq 10^9)$。
接下来 $m$ 行,每行表示一种操作。
操作 1:
1 first last
表示我们将数列 [first, last] 的数据反转。

操作 2:
2 first last
输出数列 [first, last] 当前数值。

Output

对于每个操作 2,输出数列当前数值。

Sample 1 Input

20 9
10 20 -5 30 40 50 60 70 80 90 100 3 9 -7 -10 -20 -30 -40 -50 -100
2 1 20
1 1 20
2 1 20
1 3 8
2 1 20
1 5 8
2 1 20
1 18 20
2 1 20

Sample 1 Output

10 20 -5 30 40 50 60 70 80 90 100 3 9 -7 -10 -20 -30 -40 -50 -100
-100 -50 -40 -30 -20 -10 -7 9 3 100 90 80 70 60 50 40 30 -5 20 10
-100 -50 9 -7 -10 -20 -30 -40 3 100 90 80 70 60 50 40 30 -5 20 10
-100 -50 9 -7 -40 -30 -20 -10 3 100 90 80 70 60 50 40 30 -5 20 10
-100 -50 9 -7 -40 -30 -20 -10 3 100 90 80 70 60 50 40 30 10 20 -5

Source/Category