2023/4/22に開催された、東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299)に参加しました。
前回ABCは、DDosの影響でUnratedでした。もしや今回も同じことが起こるのかもという感じがしないでもないですが、まずはレートを上げていくため頑張ろうという感じで臨みます。
Rated参加します。前回のようにUnratedにならないといいな。
— devgenjin77 (@devgenjin77) 2023年4月22日
東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299) - AtCoder https://t.co/89MMEoW1if
今回の結果
今回は4完で終了。
んで、コンテスト初っ端から提出ページが502を返したりしてたので、まさか今回もDDosが来てるのかと思いましたが、結局そのまさかでした。
開始30分を過ぎたところUnrated告知があったので、だいぶやる気が削がれましたが、なんとかD問題まで解いたという感じです。
Unrated告知が早々に出たので、モチベが下がりましたが、なんとか4完。
— devgenjin77 (@devgenjin77) 2023年4月22日
devgenjin77さんの東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299)での成績:2672位#AtCoder #東京海上日動プログラミングコンテスト2023(ABC299) https://t.co/6m8Euxbzto
振り返り
DDosの影響で提出が重かったり、Unratedになったりで、だいぶ提出が雑になったのが反省材料です。
A問題
愚直に先頭からループで回して、*
が現れるまでに、|
が丁度1回出現したかを判定すればよい。
これで問題なくACかな、、と思ってたら、そもそもin
かout
で答えなければいけないのに、Yes
かNo
で答えるというポカでWA。。
修正後ACで、4分52秒1ペナの1完。この辺から提出が重いなあということで、Unratedになるのではという予感はありました。
提出コード
https://atcoder.jp/contests/abc299/submissions/40832651
B問題
プレイヤーをとりあえずの勝者にしておき、現在見ている色を、値をで初期化。あとは、ループで各プレイヤーの出したカードの色と値を見ていく。
かつ、現在見ている色と異なる場合は、プレイヤーを勝者にし、現在見ている色を、値をで置き換える。
が、現在見ている色且つが現在見ている値より大きい場合は、プレイヤーを勝者にし、値をで置き換える。
と、こんな感じで実装してみたものの、DDosの影響なのか、提出ページが開けずで、なかなか提出できず。。。
結局、5分ぐらい試しまくってなんとか提出。ACがとれましたとさ。16分2秒1ペナで2完です。
提出コード
https://atcoder.jp/contests/abc299/submissions/40841747
C問題
文字列の中に、o
か-
が全く存在しない場合は、答えは-1
となる。両方存在する場合は、o
が最も多く連続した数が答えになる筈。
という感じで実装したら、場合分けがうまくいっておらずでWAを喰らってしまう。。
その後も、適当に色々修正して出してみるも、WAは治らず。もう大分検証も雑になってきたなあ、という感じです。
気を取り直して、まともに修正し、なんとかACを取り切りました。29分16秒4ペナで3完。
提出コード
https://atcoder.jp/contests/abc299/submissions/40851795
D問題
この時点で、すでにUnrated告知が出たので、大分モチベーションが下がっている状態でした。
それでもなんとか時間いっぱいは取り組んでみるかという感じで臨んだD問題。なんか一読した感じで二分探索する的な問題の様です。
ということで、素直に二分探索を組んでみましたが、そもそもクエリの出し方が全く合ってなかったり、計算そのものがおかしかったりで、都合2回もWAを喰らうという散々たる状態。
一旦、気を落ち着かせて、まともにローカルで検証したコードを出すことで、なんとかACを獲得することができましたとさ。
54分5秒6ペナで4完。
順位表を見ながら、Unrated確定なのに、他の人はかなり真面目に取り組んでいるんだなあと、しみじみと思ったりしておりました。
提出コード
https://atcoder.jp/contests/abc299/submissions/40864448
E問題
一応、時間がそれなりにあるので、こちらも取り組んでみる。
浮かんだ解法としては、先ず全ての頂点を黒く塗っておき、指定された各頂点から、距離が未満のところを全て白色で塗った時に黒の頂点が1つ以上あるかを判定するやり方。
が、、これで実装するも、WA。それもその筈で、指定された各頂点について、距離丁度のところに黒の頂点があるかをチェックしないといけないよねと。
結果として、そのチェックの実装は時間内に行えず。ここで終了という形になりました。
F問題
問題すら見ておりません。
G問題
問題すら見ておりません。
Ex問題
問題すら見ておりません。
これまでの実績
今回も、Unratedになったので、レート変化はありませんでした。
総括
今回は、開始直後からDDos影響で提出が重かったことで大分やる気を削がれた感があった回でした。
が、、コンテスト終了後、色々TLを眺めていると、Unratedが決まっていても、終了までちゃんと問題に取り組んでいる参加者が多いことが判り、半分雑に取り組んでいた自分の姿勢は、あまりよろしくないなあと思い知らされることになりました。
今回、2連続でUnratedになったことは残念でしたが、それで腐っていては自分の成長も見込めません。次回は、何があろうと最後まで最善を尽くしていこうと思います。
ということで、また次回も頑張ります。