PCK'22 参加記

チーム決め

気づいたら PCK 予選の申し込み締切が迫っていた。焦ってパ研の Discord で相方を募集したら anmichi さんが手を挙げてくれたので、組んだ。

チーム名は特にひねらずに二人のハンドルネームをそのまま繋げた。

予選

ノーペナで全完できた。チームでは 164 点 3 ペナで 2 位。最終問題が 36 点なのは流石に何かを間違えていると思う。

本戦まで

文化祭で一週間前まで多忙だったためなかなかバチャを走る時間がなかった。2016 年と 2022 年のものだけちゃんと書いて、あとは目で解くのに留めておいた。

どうやら開会式に間に合わない新幹線のチケットが渡されていたらしいというワクワク情報が前日に流れてくる。

第 1 日(競技以外)

遅刻するのはまずいので新幹線を少し早いものに変更した。11 時半頃に会津若松に着いた。郡山と会津若松って割と距離あるんですね。

会津大学に着いてから割とすぐに開会式があった。僕はギリギリ間に合ったが、anmichi さん(とぺんぎんさん)がお昼ご飯を食べていたら間に合わずにチーム紹介の時に変な感じになってしまった。

競技が終わったあと、順位表凍結時点で 1 位だったので暫定 1 位の風船をもらった。大きくて持ち歩くと割と視線を集めていた気がする。

競技が終わると PCK の 20 周年記念の交流会があった。人と話をしてカードに名前を書いてもらう仕組みだったが、時間がそこまでなかったので名乗りあって終わりの人が多かった気がする。いつもの人たちとはいつものように会話した気がする。

第 1 日(競技)

役割分担は決めていなかったので、本番直前に慌てて決めた。anmichi さんに前の方の問題を順に解いてもらって、僕は 8 番以降を順に読むことにした。

8 番を読む。難しい。

9 番を読む。難しい。

10 番を読む。そこまで難しくなさそうということだけ確認して次に進む。

11 番を読む。すぐに解ける。ここで精神的には一安心。

8 番を読み直す。必要十分条件がわかって、 N が小さいので 3 乗の DP でも通りそうということだけ確かめた。細かい遷移は一切考えずに次。

9 番を読み直す。やっぱりわからない。

ここら辺で相談をして、とりあえず 11 番を書いて欲しいということだったので、書く。エディタの無能さにびっくりしながら書いて、AC。

10 番を考える。操作を行うごとに数列の総和が  X-(N-1)Y 増える。 X\neq (N-1)Y の場合は簡単。 X=(N-1)Y の場合は...できそうだな!くらいのノリで書き始める。WA。

相方も 6 番で WA を出して苦しんでいそうだったので、デバッグに参加。少し時間はかかったがバグが見つかり、通る。

自分も相方に 10 番の解法を説明すると、数列の総和が  0 かどうかの判定を忘れていたことがわかった。ひどい。通る。

残りが 7,8,9,12 番だったが、7 番は明らかに沼だったので 8 と 9 に手をつける。8 番は解けていたので概要だけ相方に投げて自分は 9 を考えた。2 次元のハッシュでいけそうという話になり、頑張って実装すると 1WA を出しつつも通った。

残りは 7 と 12 で、12 が解けそうになかったので 7 を並列実装することにした。なんとか終了 5 分前に通った。

結局前半と後半で大きく分けた形になった。多分正解の戦術だと思う。12 は他チームの話を聞く限りどう頑張っても実装が間に合わなさそう。

第 2 日

モバイル部門のプレゼンを聞いたあとプログラミング部門の解説に行った。7 番の想定解が 1 年ずつ計算するもので驚き。僕たちは 2800 年を 1 周期として計算した。12 番は頂点に意識が向きすぎていたことを反省。

昼食の時間に人々と 4 番の話をした。https://manabitimes.jp/math/889 を教えてもらった。

表彰式があった。プログラミング部門の準グランプリだった。表彰は慣れていないものなので難しかった。たくさんの副賞を頂けてありがたい限り。

帰りは重い紙袋(もらったお土産や蟻本などがたくさん入っていた)を必死に運んだ。疲れた。もう少し鞄に入れれば良かった。

終わりに

僕はあと 2 年残っているのでどちらかでは優勝したいですね

ライブラリたくさん印刷していったのに一切使いどころがなくて悲しかった

会津大学の食堂の天井に飛んでいった風船、今ごろどうなっているんでしょう…