AtCoder ABC155 参加記

お久しぶりです。
忙しくてずっと参加できてなかったんですが、AtCoder の ABC155 に参加したので参加記を書こうと思います。
今回のセットは令和 ABC 最難関だったのではないでしょうか。

A 問題

3 つ組の数について、ある 2 つが等しく、残りの 1 つがそれらと異なるとき、その 3 つ組を「かわいそう」であるといいます。 3 つの整数 A, B, C が与えられるので、この 3 つ組がかわいそうであれば Yes を、そうでなければ No を出力してください。

解答
ひたすら if 文で分岐させてあげるだけです。
提出したコード


B 問題

あなたは AtCoder 王国の入国審査官です。入国者の書類にはいくつかの整数が書かれており、あなたの仕事はこれらが条件を満たすか判定することです。 規約では、次の条件を満たすとき、またその時に限り、入国を承認することになっています。 書類に書かれている整数のうち、偶数であるものは全て、3 または 5 で割り切れる。 上の規約に従うとき、書類に N 個の整数  A_{1}, A_{2}, …, A_{N} が書かれた入国者を承認するならば APPROVED を、しないならば DENIED を出力してください。

解答
for 文で各要素を見て、それが偶数ならば 3 または 5 で割れることを確認してあげて、最終的に全ての要素で条件を満たしているかを判定すれば良いです。
提出したコード


C 問題

N 枚の投票用紙があり、i (1 ≤ i ≤ N) 枚目には文字列  S_{i} が書かれています。 書かれた回数が最も多い文字列を全て、辞書順で小さい順に出力してください。

解答
map などで各文字列に対して書かれた回数を管理します。map の各要素に対してループを回して同じ文字列が書かれた回数の最大値を取得します。もう一度ループを回してその最大値と同じ回数だけ書かれた文字列があった場合は出力すれば良いです。map の中ではソートされた状態で文字列が管理されているため辞書順最小に関しては気にせずに解く事ができます。
提出したコード




D 問題は解法が浮かばず、 E は 1e^{18} を右端にして二分探索をしてみたらサンプルが 2 つ通ってしまい、dp という考え方が出てきませんでした。。。


3 完速解きでパフォ 1400 でした。

f:id:granddaifuku:20200217235336p:plain 結果的には温まったのでよかったですが精進が足りないなと思わされました。。。