ICPC 2022 Asia Yokohama Regional 参加記

チームKOSMOSとしてauauakyawaと共に ICPC 2022 Yokohama Regional に参加してきました!昨年チームを組んでいたむかでさんがコーチをやってくださいました。

チーム紹介スライド

私がDiscord全く返信してない間にkyawaが作ってくれたチーム紹介スライド

結果

結果はABDGの4完で23位。国内予選の惨状()*1を考えると、善戦したかなと思っています。なお企業賞ガチャは大失敗でした。

順位表

反省点は自分がBとDでかなりペナを出してしまったこと。これが少なければ1つか2つは順位を上げられていて企業賞ももらえていた可能性があったのでかなり悔しいです。

チーム戦略

3年ぶりのオンサイトでPC1台の制約ということで、過去の反省などを思い出しつつ事前にルールを設けました

  1. 最初にサンプルを試してから5分以上デバッグが完了しない
    → 印刷してデバッグに切り替え、キーボードを他の人に譲る

  2. 実装待ちの問題が4問以上 or 残り時間が1時間半
    ペアプロに切り替える

  3. C以降は必ず解法と実装方針を誰かと共有してから実装し始める

 

1. はデバッグでだらだらとPCを独占しないためのルールです。実装が一旦終わりサンプルを試したが合わない!という時には時間を決めて他の問題の実装に移った方が良いです。

2. は5時間を上手に使い、解ける問題を確実に早く通すためのルールです。今回の難易度では「4問以上」という基準は多すぎました。実際にはたしか残り2時間くらいのタイミングで、残り時間はE、F問題に注力することを決断しました。

3. は誤読などによる時間ロス、ペナルティを回避するためのルールです。解法だけでなく実装方針についても誰かと会話してから実装し始めることで、実装やデバッグにかかる時間の短縮も狙っています。

またコンテスト中に各問題の進捗を管理するための表を用意しました。

進捗管理表

(※本番使った紙は捨ててしまったため、画像はイメージです。)

使い方としては、該当するところに名前を書き、誰かと共有したら〇を付けておくという感じです。上記のルールを守りつつ上手く時間を使えているか確認するのに役立ちました。

本番

コンテスト開始直後の流れは

  • auaua → コンテスト環境ログイン、エディタの設定、テンプレート写経など
  • HayatoY → A問題
  • kyawa → B問題

と決めていました。

A問題

開始10分でAC。全体の中でも割と早いタイムで頑張ったと思います。

B問題

kyawa君が苦戦していてA問題が通った後も解法に辿り着いていないようでした。私が問題概要を聞いてすぐに解法が浮かんだのでA問題に引き続き実装も担当することにしました。

事前に決めたルールではB問題までは誰かと共有せず1人で進めてしまっていいことにしていましたが、少し不安だったので3人で軽く解法を共有してから実装に入りました。

ここまでは俺ファインプレー!!!!だったのですが、オーバーフローや境界条件に等号含むかどうかなど、初歩的なミスを連発し2ペナ出してしましました。auauaが一緒にデバッグしてくれてなんとかAC。本当に助かりました。

長らく競プロをサボっていたことにより、大まかな方針を出す考察力はそれほど落ちていないものの、細かい条件を詰める部分や実装力などが明らかに落ちていることを痛感させられました……。

D問題

他のチームがどの問題を多く通しているかなど確認しつつ、3人で後ろの問題に目を通し、私がD問題解けそうだったので、解法共有してから実装に取り掛かりました。

これも考慮漏れケースなどがあり、途中他問題の実装にPCを譲ったりしながらデバッグして3ペナののちAC。ほんとすまん。

G問題

D問題のデバッグと並行してauauaが実装してくれました。途中考察が不十分だったところがあったらしく相談されたので、自分も解法や実装方針について少し口を出しました。D問題AC後は自分も横で実装を見ていて、最終的にはノーペナAC!ありがとう。

E、F問題

以降はE、Fの2問に注力すると決め、3人で話し合いつつ、考察が詰め切れていなくてもできそうな部分まで実装してみるなど色々していましたが、ACまでは漕ぎ着けず4完で終了となりました。

コンテスト終了後

企業ブースを回って大量のグッズやステッカーを手に入れる、2集団がマージされた謎メンツで鳥貴族の前で「みんはや」で盛り上がるなどしました。

来年に向けて

来年はホスト校が東工大に代わり、慶應の暖色コーダーが自分以外全員いなくなるらしくて困りました。後輩たちを育てていかなければという気持ちですが、今年1年間は他のサークルやモバイル開発やインターンなど、競プロ以外のことばかりやっていてコンテストにもほとんど出ず、慶應の競プロコミュニティに全く顔を出していないため、後輩をほとんど知りません。

来年はまた競プロの方もしっかり精進していきたいと思いますので、学内の競プロerのみなさんからたくさん絡んできてくれると嬉しいです(他力本願)。よろしくお願いします。

おわりに

1年以上(昨年の国内予選)ぶりのブログ更新になってしまいましたが、主に戦略について来年以降他のチームの参考になればと思い、かなり詳しく書きました。しかし来年も自分は ICPC に出る予定なので、同レベル帯の人たちにはあまり参考にしないでいただけると助かります

最後までお読みいただきありがとうございました!!

*1:ホスト校枠を持っている慶應からは3チーム以上の突破が期待されていましたが、我々が黄Coder2人を擁しながら不甲斐ない結果を残しホスト校枠を使いました。大変申し訳ありませんでしたm(__)m

ICPC2021国内予選参加記

202 Acceptedで参加し、全体32位、学内2位で突破しました!わーい

コンテストの振り返りと今後に向けて、特にチーム戦の戦い方について思ったことを書いていこうと思います。

チーム

あうあう(@auaua159)とむかでさん(@cloudman_P)と組みました。3人ともAtCoder highestは黄色ですが、今は内2人青に落ちて苦しんでいます、つらい。とは言え大失敗をしなければ順当に通過できるレベルとは思っていたので、ホスト校枠をあてにしつつも、できれば使わずに通過したいなと考えていました。結果はホスト校枠を潰さずに済んだので私としては大満足でした。

当日まで

4月にはチームが決まっていましたがなんだかんだ忙しいのを言い訳に全然アクションを起こしていませんでした。ようやく3人のDiscord鯖が立てられたのは、2週間前のことでした……

個人的にもインターンなどがありなかなか競プロができておらず、近づいてくる国内予選当日に怯えながら過ごしていました。

PG BATTLE

飛び賞ガチャ失敗(チーム戦と言っても特殊なので、特に書くことがありません)

模擬国内予選

なんか調子がすごく良くて、大活躍しました。というか3人ともたぶん調子良くて、各々の個人技で乗り切ったような傾向が強かったと思います。チームとしてのコミュニケーションも良く取れていてかなりリラックスして和気藹々とやっていました。

KUPC

模擬国内予選とは対照的に、嵌ってしまったところですぐにチームに相談できず、1人で苦しむ時間が長くなってしまいました。G問題まで取り組んでいましたがE,F,GどれもACまで持って行けず4完に終わりました。少しでも詰まったら早めにチームメイトに相談すべきだなと感じました。

本番当日

模擬国内予選でジャッジの仕様等はしっかり確認していたので、簡単にリハーサルを済ませて一度解散し、始まる15分前くらいにDiscordで通話を繋ぎました。本番直前も割とリラックスしていた気がします。模擬国内予選やKUPCのときと同じように私がA問題をすぐ通した後D以降を読んでおく、という作戦を決めました。

開始直後

上述の通り私がA問題を、むかでさんはB、あうあうはCを担当しました。Aは思っていたより問題設定が複雑で、何度も誤読しそうになり手を震わせながら提出しました。

Correct Answer!!

D,Eに目を通す

確か私がAを通したときは他2人ともある程度解法が固まっているようだったので、Dを読み始めました。ちょっと考えても嘘貪欲しか思いつかず、「ヤバい、これ苦手なやつだ」と思ったので、Bが通ったらむかでさんに任せることにしてEに進みました。今回はこの判断がたまたま大正解でした(ちなみに私はよくこのちょっと考えて分かんないから次行っちゃお、をやってしまうんですが、大抵はより難易度の高い次の問題に進んでも時間の無駄で大失敗になることが多いです)。

E問題は読んだらすぐ拡張dijkstraじゃんとなる見た目をしていました。最初タクシーに乗る回数が大きい場合(タクシーに乗る待ち時間が$2\times 10^{10}$を超えるとき)は考えなくて良いと勘違いしていたので、めちゃくちゃ簡単だと思っていました。よく考えるとそれではダメで答えは非常に大きくなることがありますが、実は答えは

(64 bit整数なら十分収まるくらいの数)+2^(32 bit整数で十分収まるくらいの数)

という形で表されることが分かります。この形の数値を持つstructを定義して比較関数とかオーバーロードして自然な拡張dijkstraをすれば解けます(想定解法と違うと思います)。解けるんですが実装がかなりしんどそうですね。

Fに打ちのめされる

Eは時間がかかりそうなので一旦Fも見てみることにしました。私は噓解法をたくさん錬成し、チームメイトと一緒にたくさん反例を作りました。無理じゃん。諦めてE問題に戻ることにしました。これも良い判断でした。チームで相談しつつ落ち着いて取り組む問題を決められたのがとても良かったです。

実装で苦しむ

ここから孤独な時間が続きます。あうあうはCに戻り、全方位木DPの実装を頑張っていました。むかでさんもDの解法を詰めて実装し、その後デバッグに苦しんでいました。私もEの実装をし、慣れないoperatorのオーバーロードなどに苦しみながらなんとか書きあげ、1ペナののち(もったいなかった!)ACしました。

これで残り50分くらいでABEの3完になり、この時点では確か全体50位くらい、学内3位だったと記憶しています。

CかDを通したい!!

順位表を眺めて、今あうあう、むかでさんがそれぞれ取り組んでいるC,Dのうちどちらか一方でも通せれば通過は確実だろうと考えました。そこで私はFを諦めて、C,Dのサポートに回ることにしました。むかでさんのDの実装を送ってもらって眺めると、幸いすぐに配列外参照している場所を見つけることができました(こういうの自分1人で見つけるのは本当に難しい)。これでほぼ予選突破が確定しました。

残りの時間は通過を確信してニコニコしながら、1人苦しんでいるあうあうの実装を全員でデバッグしましたが、直しきれずに終了。結局ABDEの4完となりました。

Asia Yokohama Regional に向けて

今回は冷静に戦略を立てたりチームで相談したりと、「チーム戦の戦い方」が上手くできた気がします。ただCを通せなかったのは若干心残りで、全体的に実装の重い辛いセットだったなと思いました。Cをあうあうにほぼ任せきりにして終盤まで解法や実装方針の共有を行わなかったのは結果的に失敗でした。またDのデバッグやEの1ペナも、もっと早めにチームメイトに相談していれば、改善の余地があったように思います。

「10分以上考察が停滞したら」「実装に15分以上かかりそうだったら」「バグが5分以上見つけられなかったら」など具体的な条件を予め決めておいて、すぐにチームメイトに相談する癖をつけることが、チーム戦においてとても重要なのではないかと思います。思考の共有にかかるコストを考慮しても、大失敗せずに安定して成績を残すために十分すぎるメリットがあるように思います。特に我々のチームは実力がかなり拮抗した3人なので、1人で苦しまないことが良い結果に繋がりそうです。

コミュニケーション大事!!!!

 

以上、最後までお読みいただきありがとうございました。チームメイトの参加記も貼っておきます。

auauaaaa.hatenablog.com

centipede-kyopro.hatenablog.com

AtCoder黄色になった!

ABC199 (Sponsored by Panasonic) で橙ぱふぉを取り、ついにAtCoder黄色になりました!!Beginner 卒業!

Panasonic 大好き、賞品付きコンテストもいっぱいお願いします。

2017年9月、高2の夏に初めてコンテストに参加してから3年半かかりました(長かった……)

どれくらい精進したら黄色になれるのかの目安の一つとして誰かの参考になればと思い、現状を記録しておきます。

精進の方向性

精進の方向性として

  • 低難度を速く、確実に解けるようにする
  • 高難度を解ける確率を上げていく

という2つがあると思いますが、私は前者が主でした。

f:id:HayatoY:20210424233253p:plain

https://atcoderapps.herokuapp.com/atcoderperformances/show_graph/?username=HayatoY&rivalname=&since=2019-11-23&until=2021-04-24

青になってからのパフォーマンスを見てみると、高いパフォーマンスが出せるようになったというより下振れが減ったという感じですね。特に2020年の夏ごろは振れ幅が大きかったです。

低難度で詰まることが減って、パフォーマンスが少しずつ安定するようになってきました。

低難度を速く、確実に

みんなが解ける問題を確実に通した上で、たまに難しい問題が解ければ、少しずつレートは上がっていきます。黄色になるには、まずは水diffまでを絶対に落とさない、青diffも時間制限無ければほぼ確実に通せる、くらいを目指すと良いと思います。

私が青だった期間の精進は基本的に以下の2つだけでした。

  • なるべくコンテストに出る
  • 時間があるときにABCのばちゃをやる

だって1問ずつ解くより順位表見ながらコンテストやった方が楽しいし、ABCの前半は簡単に解けてラクなので。

f:id:HayatoY:20210425145334p:plain

https://kenkoooo.com/atcoder/?user=HayatoY&kind=user#/user/HayatoY?userPageTab=Progress+Charts

これを見ても、灰・茶diffばっかり解いてて、やる気あんのかお前って感じです。

でも、低難度をいっぱい解くことにはちゃんと効果があると思っています。

簡単だからこそ、より簡潔な問題の言い換えや綺麗な実装というところを意識する余裕が生まれます。

また、簡単な問題でも、最低限公式解説には目を通していました。自分が気付いていなかった考え方やより良い実装のヒントが載っていることがあります。

競プロの考察の仕方みたいなものを、私は低難度をたくさん解いていく中で学んだ気がしています。

高難度を解けるように

高難度の問題は正直あまり解いていません。上で書いたようにABCをメインにやっていたので、ABCのE、F問題に高難度があったら頑張って考察していましたが、それくらいです。

ABCで安定して全完できるようになるには(あらゆる車輪を再発明できる天才でない限り)近道は無くて、自分の中で「典型」と思える問題、考え方を学んで増やしていくしかないと思います。

そういう意味で、「高難度をたくさん解いて考察力を高めるんだ!」と気張る必要は無くて、むしろ低難度問題でよく見るテクニックをしっかり学んで、いつでもすぐに使えるようにしていこう、という姿勢が大事だと思うのです。

高難度の問題に対する取り組み方は、コンテストで出たらやる程度で十分でしょう。

コンテスト中は時間いっぱい使って頑張って考察するようにします。コンテスト後は、もう少しで解けそうだったら粘ってみてもいいし、単に知識不足ということもあるので解説やTwitterを見て、次出たら解けるように覚えておこう、くらいのモチベーションで良いと思います。

アルゴリズム・データ構造の勉強の仕方について

蟻本

蟻本は、ちゃんと読みこんだのは半分くらいまでです。あとはコンテスト後に「蟻本○○ページ」みたいなツイートを見かけたら読んでみたり、コンテスト中詰まったときに関連しそうな部分の目次を眺めてみたり、辞書的な使い方をしています。

蟻本に載っていること全部を(簡単な応用ができるくらい)自分のものにできれば、それだけで少なくとも黄色にはなれるはずです。もちろん自分のものにするってそんなに簡単なことじゃないですけど。

ライブラリ

自分でライブラリ整理するのは、理解を深めるのにとても良いと思います。抽象化とかすると、言語に対する理解も深まります。

ただこれは相当時間のかかる作業なので、せっかくだから他の人が公開してくれているライブラリを使い込んでやろうぜ、というのが私の考えです。

よく使うライブラリで自分で用意しているのはModIntとUnionFindだけで、他はいつもLuzhiled’s Libraryにお世話になっています。

ライブラリは、その仕組みを知っていることよりも、いつ使えるのか、どうやって使うのかを知っていることの方が重要なんですよ。

もちろん応用を考えるなら仕組みを知っているに越したことはないですし、仕組みを知っている方が、いつ使えるのかということも理解しやすくなるでしょう。だから余裕があれば勉強してください。

でも水とか青とかの段階では、1つのデータ構造に精通することよりも、広く浅くを優先した方が良いと思います。

Twitter

Twitterで時間を浪費している時に、競プロブログが流れてくることがあります。そういうのはなるべく目を通すようにしています。

Twitterに流れてくるということは、複数人の目に触れていて、その記事の類題がもし直後のコンテストで出題されたら、本来の難易度よりdiffが下がる傾向が出るかもしれません。だから読んでおかないとまずいな、と。

この話は次の項目に続きます。

最近競プロのコミュニティについて思うこと

 競プロ界隈ってTwitterですごく密にコミュニケーションを取っていて、狭い世界ですよね。それで、トレンドみたいなものが結構はっきりあると思うんです。最近みんな○○を勉強してるな、みたいな。

みんな知識をTwitterやブログで共有していて、結構多くの人がそれを目にしています。だから、ABCで出された問題について「○○がこの前言ってたやつだ」みたいになってdiffが低めに出ることとかありますよね。

そんなことをずっと考えていたんですが、最近ちょうど分かりやすい例があって、それがこの「競プロ典型90問」です。

すごく良い企画だと思います。毎日取り組んでる人めちゃくちゃ多いですよね。

でも逆に言うと、これをやらないと「みんなにとっての典型」を自分だけ知らないという事態になり得る怖さがあります。

あとは蟻本も競プロer必携と言われていて(要出典)、蟻本に載っているかどうかでdiffが左右されるみたいなことが起きているんじゃないかと思います。

トレンドになっている知識は確実に押さえておかないと、ABCで大失敗が起き得るのではと気付いてしまったんですよ。

知識を共有して高め合えているという点で良い環境だなと思うと同時に、そこについて行けない怖さも感じるという話です。

私は界隈のトレンドに置いていかれないように、みんなが勉強していることは自分もやっておかなければ、というのがモチベーションになっていて、Twitterで紹介されているアルゴリズムの解説記事などを読むことが多いので、これからもそうしていきたいと思っています。

何かみなさんの思うことがあれば教えて欲しいです。

これから

今後はバチャをABCからARCに乗り変えようと思いますが、取り敢えず基本的なやり方は今まで通りで行きます。

やっぱりコンテストに出るのが一番楽しいので、しんどい精進はしたくないんですが、コンテストをより楽しむには実力を上げなきゃいけないんですよね。

ICPCでももっと結果を残せるようになりたいですし、焦らず少しずつ成長していければいいなーと思っています。

終わりに

1年以上放置されたこのブログですが、黄色になったので他人の役に立つ発信ができるのでは、と思い立ち取り敢えず色変記事を書きました。また気が向いたら何か書くかもしれません。

今読み返して気付いたのですが、「最近競プロのコミュニティについて思うこと」の部分は別記事にした方が良かったのでは。まあなんでもいいや。

最後まで読んでくださりありがとうございました!

ICPC2019 Asia Taipei-Hsinchu Contest参加記

ICPC台湾に行って来ました!

大学から遠征費補助が出るということでプレッシャーがすごかったですが、めちゃくちゃ観光を楽しんできました

来年も補助お願いします

 

前泊したし帰りの飛行機も午後だったので時間が結構あって、美味しいご飯食べたりタピったりマッサージ受けたりタピったりお寺行ったりタピったりかき氷食べたりと色々しましたが、それを書いていると旅行記になりそうなのでやめます

 

ただ来年以降台湾に行こうと思っている人に向けて書いておくと

  • 地下鉄がめっちゃ安い
  • タピオカドリンクがめっちゃ安い

です

 

それではコンテストについて書いていきます

 

Practiceの日

横浜と同じように全部英語だと思って会場に向かったらスタッフに中国語で話しかけられてあたふたしてしまったけど、日本人チームと分かったら優しく案内してくれた

隣のチームとの机の距離が近すぎてびびる

 

Opening ceremonyが始まって、英語分からねーと思いながら聞いてたら中国語だった

なんか知らんけどたぶん偉い人の挨拶が全部中国語で、途中周りの人たちがみんな立ち上がって拍手し始めたときはやばいところに来てしまったと思った

流石にTechnical briefingは英語だったが、他の大事な指示はだいたい中国語(と英語)で行われていた

 

Practice

いつも俺がA問題を読み終わる頃にセットアップが終わる感じなのに、この日は違った

どうやらCapsLockキーにCtrlを割り当てるコマンドを、CapsLockが押された状態で実行してしまったらしい

本番だったらやべーと思いつつ爆笑していた

 

A,Bはやるだけで、Dも簡単に解けるらしいのでCを考える

この解法間に合わないよねーみたいなことを言い合って悩んでたけど、これが勘違いで実は間に合うことが判明する

本番じゃなくて良かった

 

DDCC

ホテルに帰ってDDCCに参加したら青になりました!!

 

この調子で明日も頑張るぞ、という感じで眠りにつく

 

本番の日

朝頑張って起きて会場に向かい、開始時間を待ちます……待ちます…………

始まりません!!

集合の悪さを見て察してはいたけどね

15分遅れで始まりました

 

本番

俺はA問題から順に読んでく

A問題は実は状態数がそんなに多くなく、普通にdfsすれば良さそうなので、実装を任せる

 

B問題、問題の条件が複雑だし解法も分からない

ここで他のチームが続々とC,Dあたりを通しているのを観測する

英語読むの速すぎるやろ

これにより、問題が難易度順になっていないことに気付く

A問題が中途半端に簡単だったので最初の方は難易度順だと思い込んでしまったが、C,Dはまじで簡単だった

こんな簡単なのが出るとは思ってなかった

という訳でAの実装を一旦中断してC,Dを、AC

 

俺が問題を読み進めてると、順位表を見てるチームメイトからHが投げられる

脳死で式変形したらすぐ解けたので、ちょうどKをACしたチームメイトにそのまま実装してもらいこれもAC!!

Kを通してからH通すまでにかかった時間は2分!

我ながら良い活躍でした(*’ω’ノノ゙☆パチパチ

 

さらに10分後にはJもACしてかなり調子良い感じ

 

ここで一旦置いといたAに取り掛かる

ペアプロとかしつつ試行錯誤して1時間くらいでAC

 

Eも並行して考察進めていたのですが、自分は構築が苦手だということが分かった

 

Lの方針がなんとなく立ち始めてたので凸包を写経している間にチームメイトがEを詰めてくれてAC

 

Lの実装に取り掛かる

その間俺はBの虚解法を生やすなどしていた

これも途中からペアプロみたいにした

しかし残念ながらタイムアップ

 

コンテスト後

Lの出力の形式が制約を満たしていないことが発覚

でももう提出してもjudgeしてくれなくなってたので、結局Lの解法が合ってたのかはよく分からない

 

反省とか

  • 問題を読むのが遅い
  • 難易度順じゃないことに気付くのが遅い
  • タイピングが遅い&実装力

これが伸びるとチームとしての戦略の幅が広がるなーという気持ち

ペアプロで横で見てる方の人の役割として、『より良い実装方針を提供する』『indexや区間の端点の処理を確認する』『制約を確認してオーバーフローや配列外参照などに気付いて指摘する』とかがあるのかな、と思っています

が、俺が本番できていたのはたぶん1つ目だけでした

Lの制約をちゃんと読んで出力の形式がちょっと特殊な処理を必要としそうなことに気が付いていれば、もしかしたら時間内に通せてたのではないかと思っていてとても悔しいです


Closing ceremony

いきなり表彰が始まってびっくりしていたら国内予選の表彰だったらしい

相変わらずほとんど中国語のみで進行するのでゲームしながら待ってた

 

100チーム以上いるからyes/noも時間かかるなと思ったら、さらに60位からは6チームごとに区切って前に呼ばれて表彰が始まって、めちゃくちゃ時間かかる

しかもyes/noやる人は英語だけど、前に来てくださいみたいな指示は中国語なんだよね

 

凍結前は13位だったけど、どんどん下がっていって結果7完内2位の20位、横浜と一緒でした

 


Banquet

美味しい食事がいっぱい用意されてた

でも長くいても悲しいことに懇親できないので早々に撤退しました

 

ABC

チームで小籠包を食べてタピってから帰ったので30分以上遅刻だったが、前日に青になって調子にのっていたので参加したらレート微増して自分でびっくりしちゃった

 

感想とか

スタッフはみんな基本中国語で、横浜は海外勢に優しい大会だなと思うなどした

指示が中国語でしか行われず分からないこともあったが、何度も周りのコンテスタントが英語や日本語で教えてくれることがあってとても温かい気持ちになった

来年も是非海外遠征いきたいです

ありがとうございました

ICPC 2019 Asia Yokohama Regional参加記

ブログに参加記をあげてる人はプロと思っているので俺もプロになるんやという気持ちではてブロ開設しました

早速ICPCの参加記を書いていこうと思います

 

前日まで

カラオケでチーム練を何回かした

問題は去年一昨年の横浜で、時間の使い方が難しいなーと思っていた

実際に何回かやってみないとチームの役割分担とか分からないのでチーム練は大事。

 

1日目

チームで集合して昼御飯食べて会場に向かう

知ってたけど、やっぱり受付が英語だとビビる

聞き取れなかったらとりあえずThanksって言っておくと良い

 

通路が一方通行になってて入口の近くの机なのに辿り着くまで会場一周歩かされた

「トイレとか行くのにかかる時間公平にするためにこうなってるのかな」って言ってたけど気付いたらパーテーション無くなってた

トイレ近くて良かったです。

 

英語をノイズとして聞き流しているとpracticeが始まった

 

チームメイトが環境を準備してる間に問題を読む

Aはやるだけ、CとDはチーム練でやったやつだったので秒で読み終わってモニターを眺める

Aの問題内容を伝えて実装してもらい、Bを考えます

分からん

とりあえず練習としてわざとWA提出しておこうよ、とか言ってみる

ある値が部分文字列として現れるかは簡単に調べられるので、答えか実はあんまり大きくならないことに気付くと解けます

 

チームメイトにBの考察を任せて写経やった以外は、実装もすべて任せて遊んでた

Dで無限にバグらせてるみたいだけど俺に出来ることはないので眺めてるだけ

 

Team Introduction

ウケなかった

 

ABC145

5完遅解きでレート-3

順調にレートを下げていく

立ち幅跳びの跳ぶ前のしゃがんでるとこなので

 

2日目

朝から体調回復したチームメイトがtwitterに出没してたけど、集合場所には現れない

 

なんとか集合してcheck-inを済ませる

眠気冷ますために一気飲みした魔剤のせいで尿意がすごいです

トイレから帰ってきたらなんかカウントダウンが始まる

まだ5分前だよ?300秒もカウントするの?

10,9,....

は?英語分からん

3,2,1

あれ、みんな封筒開け始めた

始まったっぽい

 

本番

とりあえずA,Bを読みます

Aは読んですぐ解法が生えたので一応サンプルを手で確認

環境を整え終えたチームメイトに説明する

「じゃあ実装して」と言われたのでモニターの前に座る

AでWAは出せないというプレッシャーからか、手がめちゃくちゃ震えてた

余りの処理とかが微妙に考察しきれてなかったのでペアプロみたいな感じにしてもらった

speedを一生sppedとタイポしていて笑われた

でもペアプロにしたのでWA出しても自分は責められないみたいな気持ちになって多少手の震えが収まりました(クズの発想)

AC!!

まじでよかった。実質俺の仕事終わり。

この時点で既に15分弱経過してます

 

今度はチームメイトからBの解法を聞く

Aより簡単じゃん

問題無さそうなので実装は任せる

B問題もAC

 

Bを実装してくれてる間に他の問題を読んだ

3人の中では英語読むの速い方なのでここでチームに貢献していきたいところ

C問題以降は難易度順ではないのでとりあえず3人で問題概要を把握することに専念する

順位表を見るとHが簡単そうで、チームメイトが解法を思い付いて、確認のため説明してくれる

よく分かってないけど「うんうん、なるほど、合ってそう」とか言って実装に取りかかってもらう

H問題AC

 

I問題のがばがば解法を生やしたのでチームメイトに説明し、必要そうなライブラリを写経する

たまたま昨日のpracticeで写経したのと同じとこだったのでちょっと速くなってたと思う

 

隣ではチームメイトがE問題の誤読でバトってる

なんやかんやあってE問題解けそうみたいなので写経を中断して説明を聞く

これも実はよく分かってないけどめっちゃ頷いておいた(ごめんなさい)

このくらいの時間からは、俺の役割は「相槌を返してくれるぬいぐるみ」のつもりでいた

ちゃんと一発でACしてくれたのでまあ良いでしょう

 

Hの次にたくさん解かれてるGと、細かいところが全然詰まってないものの方針は見えてそうなIをやっていく

 

I問題は用意したライブラリの機能が足りず、上手く実装できないらしくて行き詰まってしまった

これは俺も実装力上げて、ちゃんとライブラリ理解してなにかしら出来るようになりたいね

 

G問題はチームメイトの解法を聞いてなんとなく理解するがお互いあいまいなところが多い

よく分からないまま思い付いたことを言ってチームを混乱させてしまった

(でも何かのヒントになるかもしれないので思い付いたことはなんでもどんどん共有していくのが良いと思います)

結局バグらせ続けてあっという間に5時間終了!

 

最後の30分くらいはC問題考察してましたがさっぱり分かりませんでした

ちなみにまだ分かってません

 

反省点とか

  • 実装をほとんど1人に任せてしまった。データ構造とかライブラリの知識と実装力を上げていかないといけない
  • タイピングが遅い。US配列練習してたけどやっぱりまだ慣れてないな

なにもしてない時間とかは無くて、5時間集中してやりきったのでまあ良かったと思う

国内予選でただただ椅子を暖めていたことを思い出して勝手に自分の成長に感動していた

 

D問題みたい解説を聞いてびっくりしたんだけどただごりごり実装するだけで、こういうのを解けるようになりたいなと思った

チームメイトが「行列使わなくても実装できる」とずっと主張していた

よく知らないけどopenGLとか触ったことある人ならすぐ解けそうと思った

でも解いてるチーム無かったね

 

閉会式

疲れた

英語分からん

順位発表は楽しかった

 

4完最速で20位だった

頑張ったと思います

まだ来年以降もあるのでさらに上を目指していきます

 

懇親会

数独を解いてる人を見かけたので企業ブースを回って探した

数独やってたら急にチーム名呼ばれてびっくりした

全く話聞いてなかったけどなんかワイヤレスイヤホン貰えました

ありがとうございます

 

引き続き数独をやっていく

普通にムズい

スマホアプリみたいに選択したマスと同じ数字入ってるマスをハイライトしてくれ(は?)

 

数独を解いてタピオカをゲットした代わりに食事のタイミングを逃しました

いっぱい余ってたちらし寿司の寿司抜きみたいなやつ美味しかった

 

いっぱい企業ブース回って疲れました

おわり

 

明日は必修の授業を3つ切ってオフィス見学ツアーです

水族館が楽しみだね

 

まとめ

楽しかったけど改善点もたくさん分かった

オンサイトのイベントがあるとモチベ爆上げできるので、来週の台湾大会に向けてまた頑張っていきます

ありがとうございました!!

 

 

 

冗長で中身のない記事になってしまった