def check(x):
return all(digit not in str(x) for digit in "01235689")
def change(a, b):
x, y = rpos[a], rpos[b]
if x == y:
return 1
res.append((x + 1, y + 1))
rpos[pos[x]], rpos[pos[y]] = rpos[pos[y]], rpos[pos[x]]
pos[x], pos[y] = pos[y], pos[x]
return 1
n = int(input())
a = list(map(int, input().split()))
b = [(a[i], i) for i in range(n)]
pos = [i for i in range(n)]
rpos = [i for i in range(n)]
b.sort()
res = []
id = -1
ok = 1
for i in range(n):
if i != b[i][1]:
ok = 0
if id == -1 and check(a[i]):
id = i
if ok == 1:
print(0)
exit(0)
if ok == 0 and id == -1:
print(-1)
exit(0)
for i in range(n):
index = b[i][1]
if id == index:
continue
change(pos[i], id)
change(id, index)
print(len(res))
for x, y in res:
print(x, y)
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |
130. Surrounded Regions | 129. Sum Root to Leaf Numbers |
120. Triangle | 102. Binary Tree Level Order Traversal |
96. Unique Binary Search Trees | 75. Sort Colors |
74. Search a 2D Matrix | 71. Simplify Path |
62. Unique Paths | 50. Pow(x, n) |
43. Multiply Strings | 34. Find First and Last Position of Element in Sorted Array |
33. Search in Rotated Sorted Array | 17. Letter Combinations of a Phone Number |
5. Longest Palindromic Substring | 3. Longest Substring Without Repeating Characters |
1312. Minimum Insertion Steps to Make a String Palindrome | 1092. Shortest Common Supersequence |