京セラプログラミングコンテスト2021(AtCoder Beginner Contest 200) 参加記

2021/5/8に開催された京セラプログラミングコンテスト2021(AtCoder Beginner Contest 200)に参加しました。

atcoder.jp

最近レートが下降気味ですが、細かいことは考えず、とにかく頑張ろうという気持ちで臨みました。

今回の結果

で、今回は3完という残念な結果で終了です。

ABC200結果

ABC200結果

結果、茶色パフォーマンスとなり冷えました。最近こんなのばっかり。。

振り返り

Cですこしやらかして、Dは解ききることができませんでした。

ABC200提出結果

ABC200提出結果

A問題

A - Century

西暦N年が何世紀かを答える問題。西暦と世紀の対応が個人的にあやふやだったので少し調べながら実装。

結局、以下のような実装でACが取れました。

gist407b804dde661b058dd409690fdc4b9f

B問題

B - 200th ABC-200

ほとんど問題文の通りの実装でAC。特に工夫したところはありません。

Submission #22408753 - KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)

C問題

C - Ringo's Favorite Numbers 2

組み合わせの数を答える問題。この問題は、A_iA_jmod200が同じ値であれば条件が満たされるということに着目する。

解法としては、数列Aの各値のmod200の値のカウントを取り、各カウント値から2つ選ぶ場合の組み合わせの数を合計すれば良い。

というわけで、実装に移ってみたが、どうもintで計算してたのがまずかったらしく、謎のWAを2回も喰らってしまい失速。。うーん、こんな小ミスには気をつけるはずだったが。。

なんとか3回目の提出でAC。

D問題

D - Happy Birthday! 2

 この問題は、Cの応用。数列Aの各組み合わせの和を全て試すと勿論TLEになるが、あり得る組み合わせの和を最低201回試行すれば答えとなる組み合わせが出てくるはず。

ということで、HashSetなどを使い試行した組み合わせを管理するなどしたが、どうも実装がバグっているらしくサンプルすら通らない。。

結局、小一時間奮闘したが、まともな実装が間に合わず時間切れとなりましたとさ。

うーん、実装力が足りないねぇ。

E問題 

E - Patisserie ABC 2

チラ見しましたが、よくわからんかったので早々に退散しました。

F問題

F - Minflip Summation

問題すら見れておりません。

これまでの実績

レートの方も下落傾向が継続しております。

コンテスト実績

コンテスト実績

総括

今回は小ミスもさることながら、解法の目処がついていたDを解ききることができなかったという結果を出してしまい反省しきりです。実装力が足りていないようなので、もう少し精進の時間を増やさないとという感じです。

また、次回も頑張ります。