Ограничение памяти: 256M
Дано число N - количество элементов в списках. Даны списки A, B, элементы которых являются числа от 1 до N включительно в произвольном порядке. Можно провести операцию сдвига элемента списка A на X позиций, где X не больше, чем текущее количество элементов слева от передвигаемого элемента.
Нужно вычислить минимальное количество таких операций, чтобы список A стал равным списку B.
Входные данные:
Первая строка - целое число N (1 ≤ N ≤ 10^5)
Вторая строка - N разных целых чисел списка A (1 ≤ Ai ≤ N)
Третья строка - N разных целых чисел списка B (1 ≤ Bi ≤ N)
Примеры:
Входные данные:
3
3 2 1
3 2 1
Выходные данные:
0
Входные данные:
6
1 2 3 4 5 6
5 2 3 1 4 6
Выходные данные:
3
Мои попытки решить задачу:
a_dict = {num: index for index, num in enumerate(a)}
commands = 0
for i in range(n):
right_elem = b[i]
if a[i] != right_elem:
right_elem_index = a_dict[right_elem]
for num, index in a_dict.items():
if i