立命館合宿

参加してきました。楽しかった!久しぶりに競技プログラミングを堪能しました。運営の皆様ありがとうございました & お疲れさまでした。以下参加記録。

Day -n .. Day 0

  • AOJ 管理担当として、各大学のジャッジとの渉外をしてました。
  • あと AOJ の改造など。
    • 改造は結局コーチにほとんど丸投げしてしまい、やるやる詐欺に。申し訳有りませんでした・・・。
  • 3日分のデータセットを AOJ にアップロードし終えた時点で、合宿の半分を終えた気になっていたり。

Day 1

  • @shioshiota 君と @primia 君のセット。
    • あらかじめ問題概要を聞いて、解法の verify などをしていたので、この日は不参加でした。
  • AOJ が落ちないかどうかじっと見守るだけの簡単なお仕事。
    • 結局落ちなくて、ほっと一安心でした。
    • このあたりで合宿の 9 割 5 分を終えた気になっていたり。
  • 夜はりんごさん御一行にランダムウォークに誘われたけど、あまり交流のない人と喋ってみようと思って辞退してラーメン屋へ。
    • 結局集まったメンバーはほぼ会津人で、全然異文化交流ではなかった・・・。

Day 2

  • @hasi_t さんと @kou_miyam さんによる Osaka University Programming Contest 2012。
  • @kyuridenamida さんと @lyoz さんと組んで、geditisgod として参加しました。
  • あとでオンライン版があるので、コンテストの参加記録は割愛。
  • 結果は 2 位。
    • 結局私は 1 byte も実装しませんでしたが、チームメイトの二人が良い仕事をしてくれました。
    • 前のチームから聞こえてきた一言で解法が閃くなどのハプニングもありましたが。
      • まぁ、細かいところは自分で詰めたわけだし、いいよね。
    • 良い問題セットだったと思うので、合宿不参加者はぜひオンライン版をどうぞ。
  • 懇親会は食事会兼 ICPC チャレンジのようなもの。
    • ボンバーマンの AI を作って戦わせるルール。
    • にもかかわらずほとんどの AI が爆弾を一切設置しなかったり、リア充が爆発したり、なかなかカオスな試合でした。
    • 2日目はコンテストの疲れで仕方なかったとしても、1日目は割と暇だったのだから、作って参加しておけば良かった・・・。
      • 1日目は AOJ が落ちないか心配ばかりしていた・・・。
  • 夜は連れ立って銭湯に行くなど。
    • ほかほかでした。

Day 3

  • 立命館の皆さんのセット。
  • @iakasT 君とおぺにゃんとチームを組んで、k_unamimi で参加してきました。
    • 以下コンテストの参加記録。
Problem C: Lucky Dip
  • 読む。n 回 DFS ... いやいやいや。
  • 冷静になって解法を思い付いた気がするので、おぺにゃんに説明して実装してもらう。
    • BFS などと口走って図らずもおぺにゃんを翻弄したりする。
      • BFS ちがう。priority_queue つかう。Prim っぽくやる。
  • 無事に伝わったら実装が一瞬で終わった。
  • Submit. A, B を放置して C から始めたこともあって、余裕の First Accept.
Problem B: Unequal Dice
  • @iakasT 君から投げられる。
  • ちょっと式に手を加えてループを回すだけでは。
  • C を通したおぺにゃんに2行のコードを見せて実装してもらう。
    • Submit. Accepted.
Problem A: Chicken or the Egg
  • Readforces....
  • 3人で読んで、唯一それらしき解釈に成功した @iakasT 君が実装。
  • よくわからないけど普通に Accepted.
Problem D: Memory Leak
  • 問題文の BNF だけ読んだおぺにゃんが一心不乱に書き始める。
    • たまにちょっとした相談を受けたりするも、基本的におぺにゃん頑張る。
  • えーと、じゃあ残りの問題読ませてもらいますね。
Problem E: Elevator
  • 1階ずつ降ろしていくのがよいと @iakasT 君が主張する。
    • 本当だろうか。そんな気もするし違う気もする。
Problem F: Icy Composer
  • いらなそうなところを省略しながら展開する...?
    • いるところだけ考えても爆発する気がする。
  • オートマトンっぽく表現して DP ...?
    • 無理っぽい。
Problem G: Satan Attacks
  • E も F もこんなに難しいんだから、最終防衛が簡単なはずが・・・。
  • ・・・?
  • 線分アレンジメント + 最大流?
  • 簡単なのでは。
    • 擬似コード書き書き。
    • 忘れかけてたけど思い出せた。
    • D が終わったらこれやろう。
Problem D
  • 一通りデバッグしたおぺにゃんから撃墜ケース作ってほしいと頼まれる。
    • え、どんなのがコーナーケースなんだろう。
      • サンプルが十分親切であるように見える。
  • いくつか適当に作ってみるも、サンプルのほうがまだコーナーっぽい。
  • ええい、もう出しちゃってよ。
  • Submit. Accepted!
Problem G
  • おぺにゃんの幾何ライブラリと、なぜか @iakasT 君が持ってた自分の Dinic をおぺにゃんに打ち込んでもらう。
    • Dinic が汚いのでおぺにゃんに叱られたりもした。ごめんね。
  • そのままペアプロ開始。
    • さっき書いたメモを見ながらがりがり実装。
  • ...
  • できた!けどサンプル合わない。
    • ライブラリのコピペミスやら単純なバグやらを潰す。
      • いろいろ修正したら出力変わったけどまだ合わない。
  • おぺにゃん「Sample 1, 辺の容量が全部 10 なのに Sample output が 2 って明らかにおかしくないですか?」
    • ...え!?
      • 読み間違えてる!
      • 線分の分割が起きたとき、分割後の各線分の容量は減るのか!
      • いや落ち着け、これぐらいだったら1行書き直せば修正できるはず...
      • と言おうとした時には既におぺにゃんが修正し終えていた。
        • 仕事速ぇ。
  • サンプル 5 ケースのうち 3 ケースは合った。
  • 辺の分割と併合が起きるとき、分割して併合して容量切り捨て?分割して容量切り捨てて併合?
    • 問題読んでもよくわからないので clar。
    • 返答が来る前に、前者じゃないとサンプルの一つが合わない事が発覚。
    • 後者で実装してたので前者に書き換えたら合った。clar の返答も前者だった。
  • でもサンプル最後が合わない。
    • ライブラリのコピペミスを再チェック。ない。
    • 実装ミスがないか確認。見当たらない・・・。
  • 合間に @iakasT 君が E を書いたりもする。
  • 気づいたらあと 10 分もない。
    • 誤差死してるっぽいことに気づいたおぺにゃんが EPS を適当にいじる。
    • サンプル合った!!
  • Submit. まさかの一発 Accepted!!!
Problem E
  • 最後に E をみんなで頑張る。
    • 実装するも合わない。バグらしきものが見つからない・・・。
  • 結局アルゴリズムミスであったとさ。
Result
  • 5 完 2 位。
    • オンサイトの中では 1 位。
      • 大勝利である。
  • コンテスト後は解説を聞いて、学食でみんなでおしゃべりして帰って来ました。
  • 今まで組んだことのない人とチームを組むのも新鮮だったし、オンサイトの活気とかチーム戦の戦略とか引退以来久しく味わってなかったものも感じられました。
  • 時間があったらあとでもうちょっと真面目な感想も書いてみます。