ZOI2と申します。AtCoder Junior League (AJL) 2023に参加しました。参加記です。
自己紹介
高3の緑コーダー(2023/12/25時点)。AtCoder名はZoi2。双子の弟(兄はZOIZOI)。
考察に強く、実装に弱い。
動機
本編
前夜
兄と一緒に参加を決断。当時の兄のRatingは914、僕のRatingは476。正直茶色下位では入賞なんて夢のまた夢なので、20位狙いは兄に任せて、僕は学校ランキングでちょこっと仕事をしつつのんびりやろうと思っていた。
※以降の、ABC〇〇〇とかの後ろにある()の中の数字は、順にperf、順位、順位変動です。(順位変動が順位のimosになっていないのは、参加しなかったコンテストを書いていないからです。)
※ABC311までは入緑記事にもうちょっと詳しく書いてあるので、気になったら見てください。
5月〜初陣〜
ABC301(861,22位)
powの有効桁数に殺されたが上出来。初回だけとはいえ順位で兄を上回った。
ABC302(866,27位(↓4))
VSCodeがバグって提出欄に直書きするなど。書くことない。
ABC303(1010,25位(↑5))
Eの解説を見て横転。3連続緑perfと安定感抜群。
5月総括
まだのんびり遊んでいた。何も始まっていない。
6月〜茶一争い〜
ABC305(941,29位(±0))
B、入力pとqだけって何…?→配列固定!?!?となっていた。
ABC307(1304,26位(↑4))
実装難死ね。Eは数学問なので得意。入緑リーチ。
6月総括
Skyoさんと茶色トップを争う。手数に火力で対抗。
7月〜入緑〜
ABC308(867,25位(↑1))
D、DFSが書けないのでコピペで持ってきた。そのぐらい書けよ。
ABC310(1499,24位(↑4))
EでDPを思いついて入緑。これにより24位に浮上し、(ワンチャン20位あるか…?)と思い始めた。ozraruさんが入水。
ABC311(1339,25位(↓1))
Eが終了ギリギリに通ってうれしい。blackyuki様の降臨により順位は下がった。
ABC312(1289,25位(±0))
Cの早解きに成功。この辺から定期的にクソコードを生成しはじめる。
AGC063(927,24位(↑1))
AGCが得意ではなかった頃のAGC。解くのが遅すぎる。
7月総括
入緑。
8月〜20位争いへ〜
ABC313(1194,22位(↑2))
日本最強プログラマー学生選手権の予選ということで、ABCにあるまじき鬼配点になっていた。全人類3完。
ABC314(890,23位(↓1))
DとEの間に巨大な崖があり、これまた全人類4完。常軌を逸したコーディング速度()でRatingを下げた。
AGC064(1603,22位(↑1))
Zoi2AGC最強説の幕開け。 Aを20分で通し、初の青perfを獲得。この時から20位を明確に意識し始めた。
ABC315(765,22位(±0))
AGC064の反動。Dに殺された。なんでお前がDにいるんだ。
ABC317(969,23位(↓1))
A→B→D→E→Cの順に解き、Eが通らず4完。Dに1時間かけてるのが致命的。
8月総括
AGCでの勝利で20位争いにエントリー。
9月〜泡沫の栄光〜
ABC318(1139,21位(↑2))
D>Eと判断してEを早めに通し、Dに戻って考えたが、結局解けなかった。bitDPむずい。
(WTF22-day1(1727)) ※AJL非対象コンテスト
AtCoderさん、これをAJL対象にしてください。 金曜日の昼間に開催された世界大会のOpenContest。授業中に脳内で考察し、休み時間にスマホで実装してAをAC。皆様、授業は真面目に聞きましょう。
(WTF22-day2(2151)) ※0完のためAJL非対象
こっちは土曜日なのでAJL対象コンテスト…なのだが、昼間という時間帯とその圧倒的な難易度のため、なんとAJL参加者で1問以上解いた人は誰一人いなかった。
ABC319(1373,21位(±0))
実装難死ね。まあEが解けたのでOK。TwoSquirrelsさんが入水。
ABC320(724,21位(±0))
こんな感じで定期的に爆死します。なんでCが解けないんですか???(10000のみのvectorで10000をupper_bound) Modifierさんが迫ってきているのに気づいて怖かった。
ARC165(1611,21位(±0))
B、嘘解法。ごめんなさい><
ABC322(1248,20位(↑1))
実装難死ね。DをスルーしてEを解くのは実装難回の典型です。この回でついに20位浮上。いえ~い。
9月総括
初めて20位を奪い、入賞がはっきり見えた。X(Twitter)の引退に失敗し、TwoSquirrelsさんやsorachanduさんなどと交流し始めた。
10月〜猛追する者たち〜
ABC323(1281,21位(↓1))
C、100人目はボーナス気にしないといけないと勘違いして盛大に時間を溶かした。短い栄華だったなあ(21位転落)。
ARC166(1137,21位(±0))
Bを筋肉で殴った。Aがわからず1完どまり。TwoSquirrelsさんが早め2完で青perfを取り、得意寄りなはずのARCでかなり差をつけられたため厳しい状況に。niov0256さんが入水。
ABC324(1184,21位(±0))
なんでCが解けないんですか???(2回目)ちょっとややこしいと途端にできなくなるのやばい。
ARC167(1406,21位(±0))
Bをboostの多倍長整数でごり押し。悪くないけどあと30~40分ぐらいは早く解けたはず。gnu_0624さんが覚醒して猛追してきた。
ABC325(1112,21位(±0))
diffを見てDを飛ばしたまではいいが、Eでint型の最大値で初期化するなど迷走し、激遅ABCE4完。sorachanduさんが入水。
ABC326(1165,22位(↓1))
実装難死ね。ABCD4完やABCE4完では不満だがABDE4完ならOKだな~という判断のもとCを飛ばし、Dでjを1か所iにして無事ABE3完。あほ。niov0256さんも覚醒して猛追してきた。
10月総括
水色のライバルが一気に増えた。上の色の人が迫ってくるのに恐怖。
11月〜飛躍を求めて〜
ABC327(1162,22位(±0))
E、絶対あと1色ぐらいdiff高いでしょ。Dは二部グラフ判定を調べたら頂点2倍のUFが出てきた。絶対にBFS/DFSを書かないという強い信念(謎)。
ABC328(623,22位(±0))
こんな感じで定期的に爆死します。stackを思いつけない緑coder。
ABC329(878,22位(±0))
崖回。F、終了後にマージテクを知って驚愕。1か月以上水perfが無く、非常に調子が悪い。
ARC168(1602,21位(↑1))
鉄則本で学んだNimとGrundy数を駆使し、考察力を発揮。なんとか20位戦線を維持。
ABC330(1403,21位(±0))
Bの問題文が読めずWAしたが、5完でRating1164、入水リーチ。ABCはperf1400程度で「いい感じ」と思ってしまい、よくない。Modifierさんが入水。
11月総括
ABCでは勝てないと悟り、ARC/AGCの開催をずっと待っていた。
12月〜最後の死闘〜
ABC331(373,21位(±0))
まさかの2完。 Aやる→AC→Bやる→AC→Cやる→ジャッジ確認せずDへ→D沼る→3完に絶望しながら順位表を見る→
A 100
B 200
C 0
よい子のみんなはACを確認してから次の問題をやろう!
ARC169(1368,22位(↓1))
Bを数式にしようとしすぎてdpを思いつけなかった。勝てなかったので、20位のためには最後のAGCで2000近いperfを取らなければならず、この時点で20位は半分諦めていた。
ABC332(1020,23位(↓1))
実装難死ね。後ろが難しいときに実装難が来るとこうなる。
ABC333(1216,23位(±0))
Bで2WA。F、modintの割り算はO(log998)だから間に合わないよな~と思っていたら、終了後に兄に「そんなん軽いから実質O(1)」と言われ、半信半疑で書いて出したら通った。niov0256さんとgnu_0624さんは6完しており、入賞は絶望的な状況に。
AGC065(2018,20位(↑3))
希望の光。 なんとAを30分ぐらい(+2WA)で討伐。最後のAGCで大覚醒し、順位を一気に3つも上げて激熱の20位復帰。niov0256さんはとんでもないperfで遥か彼方に消えていったので、1回も勝てると思ったことがなかったozraruさん、一撃一撃が強烈なgnu_0624さん、中盤以降ずっと目標のようになっていたTwoSquirrelsさんなどをしのぎ切れば勝利。まさか最後にこんなに熱い展開が待っているとは。
ABC334(1197)
E、UFを使うという方針は合っていたが、実装方法がまずく通らず。僕のAJLスコアは上がらなかったので、あとはライバルのみんなの結果を祈るのみ。
結果は…
.
.
.
.
.
.
.
.
.
.
gnu_0624 perf1719 20位(↑2)
Zoi2 21位(↓1)
負けました!!!!!!!
12月総括
土壇場で覚醒して希望が見えたが、残念ながら入賞ならず。
完走した感想
とにかく最高に楽しかったです!!
入賞された皆様おめでとうございます。入賞できなかった悔しさはあるけど、元々入賞は無理だと思っていたし、ライバルのみんなが次々に入水する中で僕がここまで戦えたというのは大きな自信になった。AGCとかで強さも見せられたし満足。
何よりも、みんなとX(Twitter)で交流しながら本気で競い合う濃い8か月を送れて本当によかった。
雑記
・僕が高perfを取ったコンテストは大体Unrated参加。Rated参加のコンテストに絞ると14.9万点から11.2万点ぐらいまで落ちる。
・WTF22-day1がAJL対象コンテストだったら僕は19位だった。
・AJL高3部門における本当の被害者は僕ではなく、12月中旬までずっと19位を維持してたのに最後に22位まで引きずり下ろされたozraruさん。
・そこの赤coder2人、サボるな。
・他学年を見ると、僅差で入賞を逃した同校erが多い。
・実装難死ね。
ABCと非ABCの戦績比較
ABC
1197 1216 1020 373 1403 878 623 1162 1165 1112 …
非ABC(WTF22-day2は含まない)
2018 1368 1602 1406 1137 1611 1727 1603 927
差は歴然。
受験、その後
さて、こんな感じで高3の5月から12月をAJLに費やしたのだが、何か忘れていないだろうか。
そう、大学受験である。
高3にもなってろくに勉強もせず呑気にAtCoderばかり…いや全然精進してないしな… X(Twitter)とかDynamix(音ゲー)ばかりやっていた結果、模試とかの成績が大変なことになってしまった。二次試験まで2か月を切り、共テにいたってはもう十数日しか残っていない。今からやってなんとかなるのか大分怪しいが頑張る。
晴れて合格したら、AJLで戦ったみんなとリアルで会って話したいな~と思っている。こんなに交流してるのに顔も知らないというのも不思議な感じだが。(いっつもワイワイ騒いでるいつものX(Twitter)メンツ、敗者の会みたいになったな…)
当然AtCoderは大学入学後も続ける。いつか黄色とかなれるのかなあ。なれたらいいな。
落ちたら?知らん。受かればOK。