0.はじめに
丁度誕生日開催の今日この頃。
最近調子がいいのでまた緑を目指すべく取り組んだコンテスト。
A~Cは調子よくいきましたが、D以降はとけず、時間切れ。
また後退か・・とおもいきや、レートは変わらず759のままでした。
1. A - Isosceles
2等辺3角形を判定する問題。
素直に、各辺のうちいずれか2つの値が一致したらYes
一つも一致しなければNoを出力して終了。
https://atcoder.jp/contests/abc424/submissions/69460461
2.B - Perfect
全問正解者を求める問題。
ABをインプットしつつ人毎の正解数を保持しておき
正解数がMと同じになった人を正解者リストに追加。
最後に正解者数と正解者リストを出力して終了。
最初、問題をよく読まずに、全問正解者を昇順に出力して
WAになりました・・・。
https://atcoder.jp/contests/abc424/submissions/69466845
3.C - New Skill Acquired
問題を読んで、グラフを作ってDFSとかで行けるスキルを・・・
とかやるんだろうなと思いつつ、面倒な気がしたので
解説とは違った感じで実装(おそらく無駄に時間がかかっていそう)。
【考え方】
1.A,Bを読み込み、習得済みスキルセットSと
スキル毎後継リスト辞書D(キー:元となるスキル、値:後継スキルセット)
2.Sを後継スキルチェック用セットNSにコピー
3.以下、ブレイクするまで繰り返し
-1.今ループ内で新規追加される習得スキルセットS2を定義
-2.NSのスキルi毎に以下を処理
-1.D[i]のセットにあるスキルxを一つずつ判定し
xが、Sにない(未収得)ならS2に追加
-3.SにS2を統合
-4.S2が0なら(今ループで追加したスキルが無かったら)ブレイク
-5.S2が0以外なら(今ループで追加したスキルがあったら)S2をNSにコピー
4.Sの値数を出力して終了
https://atcoder.jp/contests/abc424/submissions/69480267
以上