FUNProCon2024
/icons/hr.icon
基本情報
コンテスト日時:2024/11/17 (日) 14:00~16:00 (120 分)
このコンテストは mojacoder という競技プログラミングの問題を投稿出来るサイト上で行われます。 初めての方は最初に アカウント登録 が必要になります。下記に手順を説明しているので参考にしてみてください。
/icons/hr.icon
アカウント登録について
mojacoder のサイトに行くと、アカウントを持っていない方の場合、右上に下記のようなメニューが表示されていると思います。
右から$ 2番目の「登録」というボタンをクリックします。
https://scrapbox.io/files/6718525f7bc332e72624f6f6.png
すると、新規登録の画面に行くので、「ユーザー名」・「メールアドレス」・「パスワード」を設定してください。
メールアドレスとパスワードは公開されませんが、ユーザー名はコンテスト中の 順位表 に表示されるため、本名などは推奨しません。 ゲームやネットなどで使用している名前などが良いでしょう。ちなみに自分のユーザー名は「ryusuke_h」でがっつり本名です()
https://scrapbox.io/files/671852b05729b3bba810a00d.png
登録が済んだ後、「ログイン」を行い自分のユーザー名が表示されれば登録は完了です。
https://scrapbox.io/files/6718536178286cfb278c26d7.png
/icons/hr.icon
コンテスト開催直前について
コンテストは 2024/11/17 (日) の 14:00~16:00 の 2 時間で開催されますが、コンテスト直前までは コンテストサイト のトップページで待機していてください。 時間になってサイトを更新すると、問題が表示されるようになります。
/icons/hr.icon
コンテストが開始中
問題は全部で$ 11問あります。
基本的には徐々に難しくなるような設計になっていますが、「$ 1問目が解けない」からと言って「$ 2問目以降を開かない」などのムーブはあまりオススメしません。
問題ごとにジャンルや相性があると思うので まずは全部の問題に目を通してみる というのがオススメです。
どうやって提出するの?
問題を開いてから提出するまでの流れを解説します。
試しに最もシンプルな Hello, World! を出力する問題を考えます。
この問題は与えられた入力に関わらず、Hello, World! を出力するだけの問題となっているので、C言語だと下記のように解くことができます。
code:C
int main(void) {
scanf("%s", s);
printf("Hello, World!\n");
return 0;
}
上記は正解となるコードの例です。
自分で「このコード合ってるな!」と思ったら問題ページの下にスクロールをしていくと、言語を選択して、コードを貼り付ける 場所があります。
言語は「C (GCC 12.3)」にして、コードを貼り付けて提出を押すと、提出できます!
https://scrapbox.io/files/672031b9b56acaba1493f009.png
ここまでが
問題を開く
問題文を読む
自分でコードを書く
言語を選択して提出する
一連の流れとなります。
どうやって正解・不正解を見分けるの?
コードが正しく動いて用意されている全てのテストケースに正解すると、緑色の AC という文字が表示されます。
これは「Accepted」の略で全てのテストケースに対して正しく動作しましたよ!という意味です。
AC すると初めて点数を獲得することができます。
https://scrapbox.io/files/6720322436760f58f2349a16.png
逆に 黄色で何かが表示されると不正解 を表します。
よくある不正解の例を示します。
WA ... 「Wrong Answer」の略。コードは正常に動いているけど、正しい出力結果が出ていないという意味です。不正解の場合のほとんどが WA です
TLE ... 「Time Limit Exceeded」の略。正しいコードを書いていても計算量が大きすぎて時間内(基本的には2秒以内)に処理が終わりませんでしたという意味です。今回のコンテストではあまり気にする必要はないかと思いますが、詳しくは2年生前期の必修講義「アルゴリズムとデータ構造」で行います。
https://scrapbox.io/files/6720322b388dcc8f8a1c6101.png
1つでも正しく動かないケースがあると WA になってしまうため、とにかく 問題文を正確に読んで正確に実装する ことを心がけましょう!
不正解について
提出をして AC 以外の間違え(WA や TLE など)をしてしまうと、ペナルティが加算されます。
ペナルティは$ 5分になります。
リアルタイムでコンテストを参加する場合に順位表は以下のルールで順位が付きます。
1. 正解したことで得られる点数が高いほど順位が高い
2. 同じ点数の参加者が複数人いる場合はより速く提出した人の方が順位が高い
注意しなければならないのはこの$ 2つ目のルールです。
例えば以下の$ 2人の参加者を考えます。
Aさん: $ 10分で A 問題を解いて$ 100点を獲得し、さらに$ 15分後に B 問題を解いて$ 100点を獲得した。
Bさん: $ 5分で A 問題を解いて 100 点を獲得し、さらに$ 10分後に B 問題を提出したが、不正解だった。その後$ 10分後に再提出したら正解し、$ 100点を獲得した。
この時、$ 2人とも$ 2問正解したので、点数は$ 200点です。
しかし最後の問題を解き終えるまでの時間が異なります。
A さんはノーミスで$ 2問とも正解したため、$ 25分で$ 200点を獲得したことになります。
B さんは$ 5 + 10 + 10分で$ 2問正解したため、$ 25分で$ 200点を獲得したことになりがちですが、1度不正解をしているので$ 5分のペナルティが科されます。したがって$ 30分で$ 200点を獲得したことになるので、この場合は A さんの方が順位は上です。
要約すると、ミスらず全ての問題を最速で正解する のが最強です!
/icons/hr.icon
コンテスト終了後
コンテスト終了後は各問題の解説が閲覧できるようになります。
解けた問題 / 解けなかった問題に関わらず全部の解説に目を通してみることをオススメします。解けた問題でも「こんな簡単な解法があったんだ」や「こうすると上手く処理できたのか」など新しい発見があると思います。
解説ページはコンテスト終了後(2024/11/17 16:00 以降)、トップページにて掲載しますので反映されるまで少々お待ちください。
コンテスト終了後でも問題を閲覧し解くことは出来ますが、順位表などには反映されないので後から出ようか悩んでいる方がいれば 必ずリアルタイムで受験することをオススメ します。
/icons/hr.icon
最後に
初の試みとしてこのコンテストを企画しましたが、正直ほぼ$ 1人(追記:やばかったので、後輩の森久保にも協力していただきました)で Tester や運営をしていたのでかなり大変でした。
弊学の学生さんはもちろん、競プロer の方々でも多少は楽しめるセットを目指して作ってみたのでご参加いただけますと大変嬉しく思います。