目次
はじめに
この記事では、ABC371のB問題を解説していきます。
ABC(AtCoder Beginner Contest)とは、AtCoderが開催している、競技プログラミングコンテストです。
ABC371 B – Taro
問題
AtCoder王国では、長男に必ず「太郎」という名前を付け、長男以外には「太郎」という名前は付けません。
AtCoder王国にはN戸の家があり、M人の赤子が生まれました。
\(i\) 番目に生まれた赤子は、\(A_i\) 番目の家で生まれ、\(B_i\) が “M” のとき男の子、”F” のとき女の子です。
M人の赤子それぞれについて、付けられた名前が「太郎」か判定する問題です。
制約
- \(1 \leqq N, M \leqq 100 \)
- \(1 \leqq A_i \leqq N \)
思考の筋道
「長男=はじめての男の子」です。はじめてかどうかはフラグで管理すればよいでしょう。フラグがTrueのときはすでに長男が生まれていることとし、Falseのときはまだ生まれていないこととします。
N戸の家がありますので、N個のフラグをリストで管理します。
フラグがFalseでかつ赤子が男の子のときに”Yes”を出力し、フラグをTrueに変更。それ以外のときは”No”と出力すればOKですね!
コード
N, M = map(int, input().split())
l = [False] * N
for _ in range(M):
A, B = input().split()
if l[int(A) - 1] == False and B == "M":
l[int(A) - 1] = True
print("Yes")
else:
print("No")
以上、ABC371のB問題の解説でした!
では、またね。
コメントを書く