執筆者: 終に鮭
最終更新: 2021/04/11
こんにちは。色々右往左往しながら競プロ企画の実施に漕ぎ着けました。
OUCRCとしての新歓期間は終わりましたが、4月末までコードゴルフを実施中です。せっかく部室に来て競プロをしてくれた人もいたのに、その時点で問題を選べてなかったのは問題でしたが。
GitHub Pagesで公開中です。
バックエンドはFirebase Cloud Firestoreです。無料でクエリ数も多いDBサーバーが使えるとはいい時代になったなあ。
図1:matsu_friends氏しか解いていないLeaderboard
是非問題を解いて、短くコードが書けたら送ってください。私が喜びます。
※参加にはAtCoderおよびyukicoderのアカウントが必要です。
実のところコードゴルフをするつもりではなかったのです。自分で作問した問題をアルゴ形式で出題するつもりでした。
最初は部室内にジャッジサーバーを立ててやろうと思っていました。
OnlineJudge 2.0というサーバーシステムを青岛大学が公開しているのでこれを使うつもりでいました。
これを考えている段階では帰省していてノートPCで検証していたわけですが、こいつを導入するとDockerが壊れる壊れる。
さっぱり訳がわからないのでこれは見送られました。
次に考えたのが自分でJavaかNode.jsかなどを使ってサーバーごと作ること。しかし3日でそれはどう考えたって無理(出来たとしても実行言語があまり多く用意できない)なのでボツオブボツに過ぎませんでした。
その次にOUCRC Moodleを爆誕させること。部室内の余ってるPCをサーバーにしてなんとMoodleを立てようとしたわけです。これができれば部内ウケはバッチリだったことでしょう。
しかしMoodleが案外曲者で、依存環境をまとめてインストールするような方法は用意されていません。
LAMP環境(Linux-Apache-MySQL-PHPのアクロニム)が要求されるわけですが(Nginx信者の私はLEMP環境にしようとしましたが同じことです)、MySQLの導入で詰まってやめました。
で、結果的にGoogleスプレッドシートに問題をまとめて手動入力することに……紆余曲折ありすぎる。
この段階でゴルフ形式にすることを決めました。アルゴ形式だと時間による有利不利の差が開きすぎると思ったので、解けることを前提としてそこからどこまで短くできるかというゴルフ形式ならよいと考えました。
そして泣きっ面に蜂で正課外活動の自粛要請(要請なのか禁止なのかは知りませんが同じこと)。
その結果、ソビエトロシアではお粗末なフロントエンドがWWWを公開した、というのが事の顛末です。
この人が書いた記事