れとろのメモ置場

とあるSEのメモ置場

AtCoder Beginner Contest 252

AtCoder Beginner Contest 252に参加しました。

結果

A,B,Cの3問正解でパフォーマンスが823でした。

C問題が少し苦戦した。解き方が何通りもあってどれをどう実装しようと悩んだ…
ぱっと思いついたアイディアを実装に落とし込むまでの思考が発散して逆に混乱した。

D問題は余事象考えて全通りから引けば良さそうなところまではすぐに思いついたけど、余事象を数える部分がうまくできなかった…

A - ASCII code

ASCIIコードの値が渡されるから対応する文字を表示させる問題。

C++だとchar型の中身がASCIIコードなので、受け取った数値をchar型として表示させれば良い。
入力をキャストして出力されるだけなので瞬殺だった。 コンテスト始まって1分以内で提出までできてて、たぶんこれまでの中での最速ACだと思う。

B - Takahashi's Failure

おいしさ最大の食品群のなかに嫌いな食品が含まれるかどうかを判定する問題。

おいしさ別にiのリストを作成して、おいしさ最大のリストの中にB _ {i}を含んでいるかどうかを確認して答える。

C - Slot Strategy

0から9それぞれを揃えようとしたときの時間のうち最小のものを答えれば良い。
N個あるリールのうち揃えようとしている文字がそれぞれ何文字目かを調べて最大値を取れば全部揃えるときの時間になる。
例外として複数のリールで同じ箇所に揃えようとした文字が被っている場合で、そのときは被っているうち2つ目以降のリールは1周分ずつ余計に時間が必要になる。

D - Distinct Trio

解けそうな気がしたけど解けなかった。
計算時間を気にしないなら愚直に3重ループで一応答えは求められるけどTLEになる。

求めたいことの余事象はA _ {i},A _ {j},A _ {k}の中で被りがあるi,j,kの組み合わせになるから、余事象の数を求めて全組み合わせ数から引けば良さそうなのは思いついた。
結局余事象の数え上げがうまく実装できなかったので解けなかった。