たいちょーの雑記

ぼくが3日に一度くらい雑記をかくところ

ICPC2018国内模擬に参加しました

参加した

参加しました

ABCEの4完でした。

イカれたメンバー紹介

  • ぼく(@xztaityozx_001)
    • いつもはC#で参加しているヤツ。ICPCには無いので実力が2割しか出せない
    • バグ産みマスター
  • wheson(@wheson)
    • 実質水色の緑。紅茶が好きらしい
    • vimのDockerfile試しておいてって頼んだのにスルーした悪いヤツ
  • eliza0x(@eliza0x)
    • いつもはHaskellで参加してるヤツ。C++に翻弄されるのが好き
    • 構文解析は任せろって言ってた

敬称略します

準備

僕の研究室を会場にすることになったので、PCのセットアップをした。僕以外の二人がUS配列を使う人たちだったので、Fcitxの設定を色々した。
エディターはvimで良いだろうとなったので、設定ファイルをかき集めてシンボリックリンクを貼り直すようなスクリプトでも作っておくか〜と思ったけど、Dockerでいいじゃんとなったのでそっちを用意した。

どのターミナルが誰のvimかわからんみたいになったので、ノード名を変えるとかしたほうが良さそう

直前にプリンターが死んだけど気合で直した。えらい

開始〜A問題ACまで

とりあえず全部印刷して、A,B,Cをざっくり見た。whesonが「Aはやるだけですね」と言ったので自明に実装が早いwhesonにまかせてB,Cをeliza0xと読むことにした。

Cを読んでいたらBNFが見えたので、eliza0xに投げた。ワクワクして「やるだけですね」と言ってた。
Bを読んでいたeliza0xが条件を式にしてくれていたので、ほぼ読んでないけど書けそうになった。

そうこうしているうちにwhesonがAを通した。ここまででだいたい15分だった。

D,Eの考察とCの実装

eliza0xが先にC行けそうなのでやりたいとすごいやる気だったので譲った。その間Dをwhesonと眺めることにした。

各桁にはコレだけ目的の数があるよね〜〜って式を立ててたんですが、ホワイトボードで列挙して数え上げたときと誤差がでて死亡。任意の2つの数字の組み合わせで、小さい順に並べると二進数っぽい増え方するよね〜って言ったりしていたけど、ダメそうだったのでEを先に見ることに。このときeliza0xは半分ぐらいCが出来ていたっぽい

これは失敗だが、3部問題を印刷しなかったので、全員が一度に問題を見れなかった。なので先にwhesonにEを読んでもらった。

whesonが「グラフですね」というのでイヤだなーと思っていたが、条件を聞くと二部グラフの波動を感じたので言った。whesonも少し考えた後、目を大きく見開いてそうですねといっていたので、ほぼ考察終了。このときの彼の顔がまさにピンときたみたいな顔だったので忘れられない。

「ホンマに二部グラフなんか」と思ったので条件を再度精査して、ホワイトボードに書き起こす。そしたら二部グラフ丸出しだったので、そうっぽいということになった。

ライブラリの所有者で実装が完全に頭で出来ていたwhesonがEを書くと言っていたので、僕はBを脳内コーディングして、Cを待つことに。

B,C,Eをバグらせる

この辺は目まぐるしく入れ替わったので、よく覚えていない。

たしか、パーサーはうまく動いているけどどこかが変らしく、eliza0xがCをつまらせていたので一旦、実装の軽いBをやることに。脳内コーディングとeliza0xとのペアプロでそれなりの速度でコードがかけたがやはりどこかがおかしく、プリントアウトしてwhesonと交代した。

ライブラリの写経をしている間に、eliza0xとCの問題文をもう一度よく読み、ほしい答えを読み取る。すると、実装が降ってきたみたいなので交代。この時whesonもどこかをバグらせていたみたいなのでプリントアウトして交代。ここでだいたい2時間経過ぐらい。

怒涛のAC

完全に降りてきていたみたいなのでさっとCをeliza0xが通す。Bも関数の1つがintを返さないと行けないのにboolを返してたという大ポカを修正してちょこっといじれば通ったので、whesonに交代。

Eのバグは写経ミスらしかったので、コーナーケースとかの処理をして、サンプルが通ったのがだいたい終了5分前ぐらい。この間ずっと田中ヒメの過呼吸みたいなやつの真似をしていたんだけど、whesonは気づいてくれなかったし、eliza0xは落ち着いてと言っていたので、やるタイミングを完全に間違えた。

Eを無事ACし、やったぜー!となっていた時は終了2分前だった。

終了後

終了後、弊学から参加していた人々が集まった。みんな口々に感想を言ったり、ここでバグらせたなどを言ったりしていた。あとでランキング?みたいなのを見るとselectedになっていたので素直に嬉しかった。

次は予選本番ですね!!!!!!!!同じ調子でできれば予選突破も夢じゃなさそうなので頑張っていきたい。

今回はコーディング環境周りや、手順、役割配分などで課題も見え、単に座るだけをせずに済んだのでとても良い模擬だった。ちなみに同日のARCは参加TLEしたので、問題すら見ていない・・・・・・(参加したかった)