ABC230感想

結果

3完。4完を安定させたいお年頃なので辛すぎます。

f:id:iiko_11:20211203235025p:plain

f:id:iiko_11:20211203234955p:plain

A問題

入力が1桁の時、42以上の時、それ以外に場合分けしてACしました。pythonの基礎知識が圧倒的に足りていません。競プロやっていれば少しずつついていくかなと楽観視してしまっています。

"AGC"+str(n+(n>41)).zfill(3)というコードが多分最もスマートです。zfill(x)はx桁になるようにゼロ埋めしてくれるみたいです。

B問題

最初のoの場所で場合わけしました。sの長さが2以下の時を考慮できておらず痛恨の1WA。解説を読んでs in tだけでよかったんだと分かり悲しくなりました。

C問題

40分格闘し、最終的に諦めました。敗因はmax(1−A,1−B)≤k≤min(N−A,N−B)及びmax(1−A,B−N)≤k≤min(N−A,B−1)という条件式を理解できなかったことです。今思えばなぜこの条件式の理解を諦め、放置して問題に入ろうと思ったのか後悔と謎しかありません。(a,b)を通る傾き1の線分と傾き−1の線分を黒く塗ればいいことは分かったのですが、線分の両端と(a,b)の位置関係で場合わけをせねばと考えており、可読性のかけらもない長々コードを書いて挙げ句の果てにはACできませんでした。普通の人なら1分で理解できる条件式に対して、たとえ10分かかろうがしっかりと理解してから問題に取り組まないと解けるはずがないということがわかりました。

らしさ全開のバカなコード書いてました

C問題 解説AC

D問題

結論から言えばなぜかACできましたが、本質を全く理解できていませんでした。右端に関してソートして前から見ていくのが想定解法であり、解説を読んで納得しました。私は左端に関してソートして前から見ていきWA。もう時間もなかったのでなんとなく反対側からも見て回数の少ない方を出力してみようと思ったらACできました。偶然、想定解法の真逆である左端に関してソートして後ろから見ていくというプログラムを書けていただけで、何も理解できていませんでした。全コンテスタントに申し訳ない気持ちが込み上げてきました。申し訳ございませんでした。

E問題

n=12について考えてみました。約数は[1,2,3,4,6,12]。12//12が12-6個、12//6が6-4個、12//4が4-3個...という考察のもと、かなりの自信を持ってコードを書いたら、4AC、18WA。どういうケースがカバーできていないのか分からないままタイムアップ。素晴らしき方々のありがたき解説を読みながらまったり考えたいと思います。

E問題 コンテスト中の提出

総括

12月は毎回4完しようと心に決めていましたが、早くも失敗してしまいました。また明日から少しずつ頑張ります。

余談

今まで知らなかったatcoderの機能について。すべての提出を見るとき、「コード」とか「実行時間」とかの文字をクリックするとコード長順、実行時間順に並び替えてくれるのです。クリックできるところは青くデザインされているということに気づけていなかった私は本当に驚き、感動しました。