ABC150 C - Count Order
備忘録
問題
回答
import sys import os import itertools def main(): if os.getenv("LOCAL"): sys.stdin = open("input.txt", "r") N = int(sys.stdin.readline().rstrip()) P = tuple(map(int, sys.stdin.readline().split())) Q = tuple(map(int, sys.stdin.readline().split())) seq = [] for n in range(N): seq.append(n + 1) allcase = list(itertools.permutations(seq)) ret = [] for i, case in enumerate(allcase): if case == P: ret.append(i) if case == Q: ret.append(i) print(abs(ret[0] - ret[1])) if __name__ == '__main__': main()
考え方
1, 2, ... N
の順列からすべての組み合わせを生成する。
生成した組み合わせからP
とQ
の位置を探索し、
P
の位置とQ
の位置を減算、結果を絶対値にして回答。
pythonは組み合わせを生成する関数あって非常に便利。。。