大きさNの順列を並び替えてできる数列P,Qが辞書順で何番目なのかを調べて、その差を答える問題です。
提出
import itertools
n = int(input())
p = tuple(map(int, input().split()))
q = tuple(map(int, input().split()))
num_list = list(itertools.permutations(range(1,n+1)))
print(abs(num_list.index(p)-num_list.index(q)))
Nが8以下であるので、最初に順列Nの全ての組み合わせを生成します。
itertoolsモジュールのpermutations()関数を使用することで、順列を生成して列挙することができます。
生成された順列をリストにし、数列Pと等しいもの、数列Qと等しいものが何番目にあるのかを調べて、差分の絶対値を求めます。