配列の操作 特にスライスがテーマでしょうか?
# ITP2_4_A
n = input()
N = list(map(int,input().split(" ")))
m = int(input())
for _ in range(m):
query = list(map(int,input().split(" ")))
N[query[0]:query[1]] = list(reversed(N[query[0]:query[1]]))
print(*N)
# ITP2_4_B
n = input()
# リストを2つ用意しました
N = list(map(int,input().split(" ")))
B = N[:] # B: Nをコピーしたリスト
ite = int(input())
for _ in range(ite):
b,m,e = list(map(int,input().split(" ")))
for k in range(e-b):
B[b+(k+(e-m))%(e-b)] = N[b+k]
# 一通りの操作が終わったらコピーします
N = B[:]
print(*N)
# ITP2_4_C
n = input()
N = list(map(int,input().split(" ")))
ite = int(input())
for _ in range(ite):
b,e,t = list(map(int,input().split(" ")))
for k in range(e-b):
tmp = N[b+k]
N[b+k] = N[t+k]
N[t+k] = tmp
print(*N)
# ITP2_4_D 単純にsetにするだけだと順序を保ってくれない
n = input()
N = list(set(map(int,input().split(" "))))
N.sort()
print(*N)