season's quarterly

数学/物理/プログラミング

PCK2019本選参加記[AはDPのA]

予選はこちらです。
season1618.hatenablog.jp

1日目

移動

4時間目まで学校の授業を受けて、昼食を食べてから出発しました。郡山行きの新幹線がlog K (@Selfgrudge) / Twitterさんと
https://twitter.com/nn1k_?s=17さんのチームと同じでした。


ホテルについてすぐ顧問の先生にステーキ宮に連れていってもらいました。ただで食うステーキは最高です。

yukicoderオンサイト

ロビーでオンサイトをやるという話だったので、行ってみることにしました。僕はノートパソコンを持っていないのでスマホコーデディングです。そこで
tatyam (@tatyam_prime) / Twitterさんの名刺を貰いました。A,Bを通したあとCが解けそうにないので、E869120さんが作ったゲームをやりました。僕はそこそこの点数だったのですが、先輩がもう少しで殿堂入りするところだったらしいです。その後
matumoto1234 (@toyama_tty) / Twitterさんと
https://twitter.com/yta1719さんとエンカしました。

2日目

競プロ歴1年

実は、僕は丁度一年前のこの日に、顧問の先生に誘われてパソコン同好会に入り、競プロを始めたという経緯があります。競プロを始めたその日にパソコン甲子園の本選に出るというのはとても感慨深いです。

午前中

朝食はホテルで出ました。卵がおいてあったので迷わず卵かけご飯にしました。


腹が減っていたのでいつもより多めに食べました。ところが、これが原因だったのか、あるいは昨日のステーキが重かったのか、腹痛を感じ始めます。これは自分だけ腹痛甲子園かな~と思っていると、幸い開会式の前に下したので、集中して競技に取り組むことができました。

競技

競技環境

youtubeの動画を見ていたので、L字型の机だと思っていたのですが、今年はそうではありませんでした。長方形の机の左右にディスプレイがありました。左側には、コーディングのためのエディタとコンパイラ、そして提出用画面とキーボードが用意されていて、右側には、本選ともう一つの本選の順位表が表示されていました。キーボードは普段使っているものよりもキーが高く、個人的には扱いにくかったです。エディタのTeraPadもハイライトが分かりにくかったり、自動インデントがないなどかなり不便でした。また、いちいちコマンドを打ってコンパイルするという方式にも慣れませんでした。
分担

  • 先輩...2,3
  • 自分...1,4,5
問題1 目盛りのないストップウォッチ

t/a*rを出力すれば良いです。

問題3 海苔

僕が問題3、先輩が問題5を考えていたのですが、早速何十行にも及ぶ理解不能なエラーが出てしまい、先輩に相談します。自分は後から知ったのですが、どうやら"y1"が標準ライブラリ中の変数と被ってしまっていたそうです。一人だと詰んでたところでした汗。

問題4 へびの脱皮

そのすきに問題4を考えました。脱皮するごとにooの数が二倍に増えるので、計算をすると解けました。ここまでは0ペナでした。順位も上の方だったので今回は上手くいくのではと思いました。

再び問題3

サンプルを通して提出すると、初めてのペナが出ました。この時点ではまだ焦りはなかったのですが、コーナーケースをいくつ見つけても通らないので後回しにすべきかと考えます。同じ頃先輩も問題5でエラーを量産し始めます。

問題5 デジットK

どうしてもバグが取れないので、思いきって交換することにしました。問題5は、ぱっと見で思った解法が先輩のそれと同じであることを確認したので、より確実そうな方法をとることにしました。整数の上からs桁目を選ぶ範囲を指定して、前から見ていったときに初めて最大の数値が来たときに選択します。これはある範囲にある数字の個数を累積和で求め、最大の数値を決定するという前処理をすることでできます。
先輩が問題3を17:23に通し、自分も問題5を17:32に通すことができました。これは3完で終わってしまうかなーと覚悟していたので良かったです。この時、順位表が誤って更新されていたため、全体で17位だと分かりました。でも風船はもらえませんでした。かなしいね。翌日、パソコン甲子園ツイッター班の投稿を見ると、自分たちの提出の後に二回逆転されていたので、最終順位は19位だと思われます。

感想
  • エディタやコンパイルなど、色々と慣れていなかった。
  • 問題3は僕の苦手な形式の問題で、長方形の重なり方を全て把握するのに時間がかかった。
  • 途中までは順調だったが、二人とも沼にはまってしまい、後半の問題を考察する余裕がなかった。

交流会

チーム「らてd」と同じテーブルでした。最初顧問の方と話していたのですが、二人を紹介してくれたのでエンカできました。


大エンカ大会を経験。
交流会の夕食も結構豪華で、寿司やケーキもありました。
交流会の後もたくさんの方とエンカしました。

NIKKEIコン

今回は部屋でやりました。先輩も久しぶりにコンテストに出ました。配点が1-3-6だったので、スマホコーディングで早解きできない自分は冷えを確信していたのですが、余興ということで出ました。やはりレーティングは下がったのですが、楽しかったです。

3日目

モバイル部門&いちまいの絵CG部門

午前中はパソコン甲子園の他競技の観戦をしました。僕はモバイル部門にはあまり興味がなかったので、一通り見た後はエモい絵を探して写真を撮ったりしていました。

本選問題解説

問題文に目を通していて解けなかったものについては非常に参考になりました。また解いた問題に関しても、別の解き方があったりと、様々な視点を知ることができました。

感想

地域枠とはいえ、パソコン甲子園本選に出場することができて嬉しく思います。この三日間を通してtwitterでしか知らなかった人と知り合ったり、本選出場者しかできないような貴重な経験をすることができました。とても楽しい三日間だったので、またオンサイトに出たいという気持ちも強くなりました。JOIも近いので精進を怠らず、次の目標(青になりたい)を目指していきたいと思います。