ABC170 参加記

ABC170に参加しました。

atcoder.jp

前回のABCは4完だったので、今回も前回と同じ4完が目標。

前日の東京海上日動プログラミングコンテストでレーティング398まで上昇したので、今回の結果で灰色卒業は間違いないだろうなーと思っておりました。

今回の結果

で、終わってみれば目標未達の3完終了です。

ABC170結果

ABC170結果

しかも、C問題で相当WAをやらかしてしまい、今回は400未満のパフォーマンス。

灰色卒業は、おあずけとなりました。

振り返り

ABC170提出結果

ABC170提出結果

A問題

A - Five Variables

 入力が5個あって、何個目に0があるかという問題。とくに詰まるところなくAC。

B問題

B - Crane and Turtle

 入力はX、Yの整数。鶴と亀が合わせてX匹、足は総数Y本となる鶴と亀の数の組み合わせが存在するかという問題。

 

ちょいと上手い解法がわからんかったので、愚直にIF文の分岐をたくさん使い、なんとかACまでこぎつけました。

C問題

C - Forbidden List

整数Xと数列が与えられ、Xと絶対値が近い整数の内数列に存在しないものを探すという問題。

 

数値の上限値も小さいので、int[102]程度の配列を作って数列内の数字を添字にする要領で実装すればいいんじゃね?ってことで提出まで漕ぎ着けてみれば、これがWAの繰り返し。

 

そもそも絶対値が同じ解が複数ある場合に低い値を出すという条件を見落としてたり、解答が0になるケースの実装が怪しそうだったりとかで、もう色々直しながら提出してたら、結局5回もWAを喰らった後、やっとACが出せました。(なんか当てもんみたいになってしまったw)

D問題

D - Not Divisible

整数の数列が与えられ、数列内の他のどの数字でも割り切れない数はいくつかを答える問題。

 

多分愚直にやるとTLE喰らいそうだから、ソートしてから評価すればもうちょい効率よくなるのでは?という感じでサンプルケースが通るコードを作ってみましたが、提出してみれば、結局TLE。。

 

コンテスト中は改善策が思いつかず、この問題はここで諦めました。

 

あとで解説をみてみれば、エラトステネスの篩の要領でやれば計算量が抑えられたとのこと。全く思いつかなかったなーと反省しました。

E問題

E - Smart Infants

 問題文読むと、普通に考えて実装めっちゃ重そうで、愚直にやるとTLE食らいそうな感じ。時間も残り少ないのでパス。

F問題

F - Pond Skater

問題文をみただけで、BFSを使うやつやなー。ということで、BFSらしき実装をしてみましたが、すでに残り時間がほとんど無く、テストもできぬまま終了となりましたー。

今回の実績

Rated5回目にして、初のレート下げを経験してしまいました。

C問題でWAを繰り返したのがほんとに痛かった。

 

コンテスト実績

コンテスト実績

総括

今回はWAのペナルティーを多く喰らいすぎて、残念な結果になってしまいました。

 

2完、3完レベルだと、簡単な問題をどんだけ早く正確に解けるかという競争になりがちですね。次回からは提出前にできるだけテストしてから出すようにして、WAを喰らう回数を抑えるように心がけます。