ABC342 B問題の解説(Python)

はじめに

この記事では、ABC342のA問題を解説していきます。

ABC(AtCoder Beginner Contest)とは、AtCoderが開催している、競技プログラミングコンテストです。

ABC342 B – Which is ahead?

問題

問題

N人が1列に並んでおり、前からi番目に並んでいる人は人 \(P_i\) です。

また、Q個のクエリがあり、i番目のクエリは以下の内容です。

  • 人 \(A_i\)​ と人 \(B_i\) のうち、より前に並んでいる人の番号を出力せよ。

Q個のクエリを処理する問題です。

制約

  • \(1 \leqq N \leqq 100 \)
  • \(1 \leqq P_i \leqq N \)
  • \(1 \leqq Q \leqq 100 \)
  • \(1 \leqq A_i \leqq B_i \leqq N \)

思考の筋道

クエリの数が100以下であり、人数も100人以下ですので、十分、全探索できます。

素直に人 A_i と B_i がリストの何番目かを調べ、それを比較することで解けますね!

コード

N = int(input())
P = list(map(int, input().split()))
Q = int(input())
l = [list(map(int, input().split())) for _ in range(Q)]

for pair in l:
    A, B = pair[0], pair[1]
    id_a = P.index(A)
    id_b = P.index(B)
    if id_a < id_b:
        print(A)
    else:
        print(B)

以上、ABC342のB問題の解説でした!

では、またね。

リンク