tatyam’s blog

(ノ) - ω - (ヾ)モチモチ

Google Code Jam まとめ

Google Code Jam ってどんなコンテストなんでしょうか…? 調べてみました!

注 : 2020 年の情報です。

GCJ とは…?

Google 社主催の年1回の世界最大規模の競技プログラミングのコンテストです。 Round 3 まで進出するとTシャツがもらえます!

スケジュール

Code Jam - Google’s Coding Competitions

開始 (UTC+9) 長さ
Qualification Round 2020 4/4(土) 8:00 ~ 27時間
Round 1A 2020 4/11(土) 10:00 ~ 2.5時間
Round 1B 2020 4/20(月) 1:00 ~ 2.5時間
Round 1C 2020 5/2(土) 18:00 ~ 2.5時間
Round 2 2020 5/16(土) 23:00 ~ 2.5時間
Round 3 2020 6/6(土) 23:00 ~ 2.5時間
World Finals 2020 8/7(金) 19:30 ~ 4時間

Qualification Round は 27時間、 Round 1 は 時間帯をずらして3回あるようです! ありがたいですね!

一方 Round 2 以降は 23:00 ~ と深夜帯でのコンテストとなります!

Qualification Round

4/4(土) 8:00 ~ 4/5(日) 11:00 (27 h)

Qualification Round には参加登録した人が全員出場できます!
参加登録には16歳以上であることが必要です。 参加登録 はもうしましたか?

Qualification Round で 30点以上を取ると、 Round 1 に進出します!

Qualification Round では、なんと相談自由 です! (Rules 7.1)
システムがわからない>< とか、英語がわからない>< とか、30点とれない>< とかいう場合は、誰かと相談してみてはいかがでしょうか?

Round 1

1A : 4/11(土) 10:00 ~ 12:30 (2.5 h)
1B : 4/20(月) 1:00 ~ 3:30 (2.5 h)
1C : 5/2(土) 18:00 ~ 20:30 (2.5 h)

Round 1 は Round 2 への進出が決まるまで出ることができて、 Round 1 のそれぞれで、まだ Round 2 への進出が決まっていない上位 1500 人が Round 2 に進出します。
つまり、Round 1A より Round 1B 、Round 1B より Round 1C のほうが Round 2 に進出しやすいということになります!
18:00 ~ と人権のある Round 1C が狙い目ですね!

Round 2

5/16(土) 23:00 ~ 1:30 (2.5 h)

Round 2 は Tシャツをかけた戦い です。
Round 2 の上位 1000 人が、 Round 3 に進出し、Tシャツをもらえます!

Round 3

6/6(土) 23:00 ~ 1:30 (2.5 h)

Round 3 は オンサイトをかけた戦い です。
Round 3 の上位 25 人が、 World Finals に進出します!

World Finals

8/7(金) 19:30 ~ 23:30 (4 h)

ライブ中継もあるようです!
今年も tourist が優勝するのでしょうか…?

コンテスト形式

Round 1 は 3問で100点、 World Finals は 5問で200点、それ以外は4問で100点の構成になっています。

f:id:tatyam_prime:20200403203314p:plain

各問題にはいくつかの小課題があり、1個以上のフィードバックのある小課題と、0個以上のフィードバックのない小課題からなります。
「小さい制約でフィードバックのある小課題を1つと、大きい制約でフィードバックのない小課題を1つ」のパターンが多く、 フィードバックのある方を Small、 ないほうを Large と呼ぶようです!
前の小課題が通らないと次の小課題はジャッジされません。
また、フィードバックのない小課題の結果はコンテスト終了後すぐに明らかになるようです!

順位は AtCoder形式 で決まり、誤答ペナルティは4分です。
コンテスト中の順位表はフィードバックのない方も全て通った場合の得点で表示されることに注意しましょう!

問題形式

基本的に1実行の中に複数テストケースがある形式で、実行制限時間は 20秒 が多いようです。

複数テストケースの場合は、このように Case #1: が必要なことに注意しましょう!

void Case(int i){ printf("Case #%d: ", i); }

このようなテンプレートを用意しておくと良いかもしれませんね!

また、昨年は全ての Round でインタラクティブ問題が出題されていて、インタラクティブ問題が多い傾向にあるようです。
インタラクティブ問題の練習をしておくと良いかもしれませんね!

いかがでしたか?