【オンライン、2020年】Google Code Jam 2020

3月23日にTwitter公式アカウント Google Developer Groups(@gdg)でGoogle Code Jam 2020 が開催ツイートがあり、参加申込が始まっています。

この記事でも概要とスケジュールは記載しておりますが、必ず公式ページを確認してください。


Google Code Jam 2020 の概要

サイトや問題は英語で記載されています。
DeepL翻訳みらい翻訳Google 翻訳を使用してみてください。

Google Code Jam とは

What is Code Jam?

Google’s longest running global coding competition, Code Jam, calls on programmers around the world to solve challenging, algorithmic puzzles against the clock. Contestants advance through four online-hosted rounds to compete at the annual Code Jam World Finals that is held at a different international Google office each year. Each round brings new challenges, and in the end 25 contestants will have the ultimate chance to put their skills to the test, vying for cash prizes and the coveted championship title at the World Finals.

Google Code Jam 2020 より引用

Google が最も長く続けているグローバル コーディング コンテストである Code Jam は、世界中のプログラマーを対象に、時間に追われることなくアルゴリズムに基づいた難解なパズルを解くことを競います。出場者は、オンラインで開催される4つのRound を経て、毎年 Google の世界各地のオフィスで開催されるWorld Finals に出場します。各 Round ごとに新たなチャレンジが用意されており、最終的には25人の出場者が自分のスキルを試す究極のチャンスとなり、賞金と世界決勝大会での切望されたチャンピオンシップのタイトルを競います。

Google Code Jam は、Google が主催する国際的なプログラミング コンテストです。2003年から毎年開催されており、今年 2020年で17回目の開催になります。

Google Code Jam 以外に、「Hash Code」「Kick Start」というコンテストもあります。

システム

Qualification Round(予選)の後、Round 1、 Round 2、Round 3、Final Round とあり、各 Round で上位に入ると次のRound に進めるシステムです。

参加方法

申込締切は、2020年 4月 5日 11:00 am(JST)。

参加は無料。

スケジュール

  1. Qualification Round(予選):4月4日(土) 08:00 am 〜 4月5日(日) 11:00 am(JST)の27時間。
  2. Round 1A:4月11日 10:00 am 〜 12:30 am(JST)の2時間30分。
  3. Round 1B:4月20日 01:00 am 〜 03:30 am(JST)の2時間30分。
  4. Round 1C:5月2日 18:00 pm 〜 20:30 pm(JST)の2時間30分。
  5. Round 2:5月16日 23:00 pm 〜 5月17日 01:30 am(JST)の2時間30分。
  6. Round 3:6月6日(土) 23:00 pm 〜 6月7日(日) 01:30 am(JST)の2時間30分。
  7. World Finals:8月7日 19:30 pm 〜 23:30 pm(JST)の4時間。

過去に参加された方のレポート

まとめサイト

Code Jam Rules

必ず公式の規約 をご覧ください。

1. 年齢

Final Round に参加するには、当日までにCoding Competitions Terms(コーディング競技規約)に指定されている年齢に達している必要があります。指定年齢が達していない場合、Tシャツの獲得のみになります。

※最低年齢 とは、18歳以上または居住国の成人の年齢。

2. 登録

本コンテストの登録は、2020年3月4日(水) 04:00(JST)で開始し、4月5日(日) 11:00(JST)で終了します。

3. コンテスト構造

本コンテストは5つのRound(Qualification Round / Round 1 / Round 2 / Round 3 / World Finals) で構成されています。
Qualification Round、Round 1〜3 はオンラインで実施されますが、World Finals はドイツ・ミュンヘンのGoogle オフィス、または Google が指定する場所で行われます。
※各 Round の日時は、Coding Competitions Terms に従って、Google が変更する場合があるので公式サイトのスケジュールをご覧ください。

進出のお知らせ 各 Round の出場資格基準と順位は、公式サイトの各 Round 概要ページに掲載されています。各 Round 後にスコアボードが確定した後、次のRound に出場する資格があるかどうかを示す通知が、コーディング コンテスト アカウントのプロフィールに表示されます。

3.1 Code Jam Rounds

(A)Qualification Round
Qualification Round は、2020年 44月4日(土) 08:00 am 〜 4月5日(日) 11:00 am(JST)まで行います。Qualification Round では、公式サイトにログインして、27時間以内にいくつかの問題に挑戦しなければなりません。Qualification Round で30点以上を獲得した場合、ペナルティタイムに関わらず、Round 1 に進出できます。

(B)Round 1

Round 1はオンラインで実施され、3つのRound 1 A / B / C で提供されます。
Round 1 A / B / C の3つのサブ Round が4月11日(土)から2020年5月2日(日)まで、公式サイトのスケジュール に指定された時間に開催されます。
Round 1 に進出した方は、公式サイトにログインして様々な問題を解いて、Round 2 への参加資格を得ることができます。ただし、一度 Round 2 に進出すると、その後のサブ Round には参加できなくなります。Round 1 のサブ Round で上位 1,500人の中から選ばれた方がRound 2 に進出します。合計 4,500人の方がRound 2 に進出することになります。

(C)Round 2

Round 2 はオンラインで実施され、2020年5月16日(土) 23:00(JST)に開始し、2020年5月17日(土)01:30 (JST)に終了します。Round 2 に参加するには、公式サイトにログインして、いくつかの問題を解く必要があります。Round 2 の上位 1,000人のうちの1人になれば、Round 3 に進むことができます。

(D)Round 3

Round 3 はオンラインで実施され、2020年6月6日(土)23:00(JST)に開始し、6月7日(日)01:30(JST)に終了します。Round 3 に参加するには、公式サイトにログインして、いくつかの問題を解く必要があります。Round 3 の上位25人のうちの1人に選ばれた方は、現地で行われるWorld Finals に進出できます。

(E)World Finals Round

(1)日時と開催場所
Finals Round は、2020年8月7日(金)(JST)にドイツのミュンヘンにある Google オフィスで開催されます。ただし、Google 独自の判断でFinals Roundの開催日と場所を変更することがあります。
(2)構成
Finals Round では、Google が提供するコンピュータ機器や素材のみを使用して、いくつかの問題を解くことが求められます。Google が許可したキーボードやその他の素材を使用することもできます。

4. 問題

4.1 エディタとプログラミング言語

(A)エディタ
コードが他の人にアクセスできない限り、オンラインで利用可能なものを含め、どのようなエディタや開発環境を使用しても構いません。
(B)プログラミング言語
Code Jam の問題を解くためには、本コンテストの公式サイトで公開されているプログラミング言語を使用することができます。各言語の現在のバージョンや設定については、FAQ を確認してください。

4.2 Code Jam 問題の解決策の提出

(A)提出要件
コードジャムの問題では、本コンテストの公式サイトからソースコードを提出してください。提出するファイルのプログラミング言語は、提供されているドロップダウンメニューを使って指定する必要があります。
ソースコードは、当社のサーバー上でそのまま実行できる単一ファイルでなければなりません。ソースコードのサイズは100KBを超えてはなりません。
(B)時間、メモリ、およびその他のリソースの制限
問題またはテストセットは、時間、メモリ、またはその他のリソース制限を指定することができます。問題やテストセットで提供されているリソースの制限をすべて記録するのは、あなたの責任です。
(C)提出制限
短い時間内に提出しすぎた場合、システムは提出を拒否することがあります。この制限に近づくと、ダッシュボードに警告が表示されます。
(D)既存のコード
Round への投稿では、Round 開始前に存在していたコードを使用することができますが、そのコードを書いたか、そのコードを使用するためのライセンスを取得している場合に限ります。

4.3 審査と採点:提出された解答は、以下のように審査されます。

(A)可視および隠れた評決テストセット
各問題には、1つ以上の可視評決テストセット(順番)が含まれ、その後に0つ以上の隠し評決テストセット(順番)が続きます。”目に見える評決テストセット」とは、Round 中に判定結果が報告されるテストセットです。”隠された評決テストセット」とは、Round 終了後まで判定結果が明らかにされないテストセットです。問題文には、各テストセットがVisible Verdict かHidden Verdict かが記載されます。
(B)テストセットの判定
提出課題は、サンプル(該当する場合)、テストセット 1、テストセット 2の順に各テストセットに対して審査されます。もしあなたの提出課題がテストセットに合格した場合、次のテストセット(存在する場合)などで実行され、もしあなたの提出課題がテストセットに失敗した場合、それ以降のテストセットでは実行されません。
(C)隠された評決テストセットのポイント
各問題について、すべての可視の評決テストセットに合格した最新の提出課題のみが、隠れた評決テストセットのポイントを受け取ることができます。それ以外のすべての提出課題は、すべての隠れた評定テストセットで却下されます。
(D)一次提出課題
各問題の一次提出課題は、その問題のすべての合格したテストセットの値の合計(提出課題のスコア)が最も大きい提出課題で、提出時間が最も早いものを選択して同点を解消します。
ある問題の提出課題でポイントを受け取った提出課題がない場合、その問題の一次提出課題は存在せず、その問題のスコアはゼロ(0)です。
(E)採点
各 Round のあなたの得点は、そのRound の問題の一次提出で獲得した得点の合計です。
(F)ペナルティの試み
その問題の一次提出課題を提出するまで、サンプルに合格した問題の提出ごとに1回のペナルティが発生します。問題の一次提出がない場合、その問題のペナルティは発生しません。
(G)ペナルティタイム
Round で少なくとも1点を獲得した場合、Round のペナルティタイムは、Round の開始時から測定されたすべての一次提出課題の中で最も新しいものを提出するのに要した時間に、Round 中のすべての課題でペナルティを試みるごとに4分を加えた時間に相当します。
(H)ランク
Round で少なくとも1点を獲得した場合、そのRound のランクが与えられます。
スコアの高い順、低い順に順位をつけ、ペナルティタイムの低い順に順位をつけ、ペナルティタイムの高い順に順位をつけます。スコアボードに記載されている時間よりも細かい時間精度に基づいて、必要に応じて同点判定を行う権利を留保します。
Round 1 の合計得点が0点の場合はランクがあるとはみなされません。例えば、1,500人の上位者が次のRound に進出する場合、1,400人だけが正解した場合は、その1,400人だけが次のRound に進出することになります。

5. Final Round への出席と関連イベント

5.1 出席の義務

遅刻や失格の可能性を避けるため、Final Round の少なくとも1日前までにはFinal Round の会場に到着してください。本コンテストのFinal Round に参加し、賞品を受け取る資格を維持するためには、すべての必須イベントに参加しなければなりません。そうでない場合、Google は独自の裁量により、Final Round のランキングの最下位に移動し、上位3名の賞品が授与されるまで、次に高いスコアを獲得した参加者に賞品を授与する場合があります。Final Round に関連するイベントはすべて出場者のみが参加できますが、事前にゲストを登録しておけば、Google が許可したレセプションやその他のイベントにゲストを同伴することができます。ゲストに発生した旅費については、Google は一切の責任を負いません。

5.2 旅費の払い戻し

ファイナリストとして、Google は、以下の通り、Final Round への参加に必要な旅費を支払います。Final Round 終了後 30 日以内に、経費の払い戻しを希望する場合は、詳細な領収書および Google が要求する書類を添えて Google またはその指定代理店に提出する必要があります。その他の費用はすべてお客様のご負担となります。Google が払い戻しを行うのは、ご自身の費用のみとなります。他のファイナリストの費用を支払って、その費用の払い戻しを受けることはできません。以下に記載されている金額は、払い戻しの上限額です。提出された領収書と書類の合計額が、記載されている払い戻し上限額を下回っている場合、Google が実際に支払った金額は、払い戻し上限額を下回る可能性があります。

(A)ビザ
Final Round に参加するためにビザが必要な場合は、Final Round に到着する前にご自身でビザを取得してください。必要に応じて、Google はビザ申請をサポートするための Code Jam 招待状を提供します。Code Jam の招待状は、Final Round の Code Jam 参加者にのみ提供されます。Google は、ビザ申請費用とビザ取得のために片道で発生した旅費を最大 100 USDまで補償します。Google はパスポート取得に関連した料金や費用は一切払い戻しません。ビザ取得にかかった費用の払い戻しを希望する場合は、発生した費用を証明する箇条書きの領収書を Google に提出する必要があります。
(B)航空券
Final Round に残った方には、Google またはその指定代理店が選択したフライトで、居住地に最も近い主要空港からの往復コーチングクラスの航空券が提供されます。お住まいに最も近い主要空港以外の空港から、または Google またはその指定代理店が選択したフライト以外のフライトをご希望の場合は、キャンセル料または変更料に加えて、差額の費用をお支払いいただく必要があります。Google がFinal Round の開催地を変更した結果、航空運賃が減額された場合、お客様は Google が支払った航空運賃の差額を支払う権利はありません。Google は、各空港までの往復の交通費を片道 50 USDを上限として、お客様に払い戻します。
(C)宿泊施設
Final Round に参加するために、Google が承認した Google またはその指定代理店が選択したホテルでの滞在期間中の宿泊費(1 名分)が提供されます。
(D) 食事
Final Round に参加するために Google が承認した滞在期間中の食事代(1 日あたり最高 30 USD)と、Final Round の開催地との間の移動日数分の費用が、Final Round 参加者として Google から支給されます。

6. 賞品

6.1 Code Jam Tシャツ
Round 2 の上位 1,000人の中から選ばれた方には、Tシャツを1枚差し上げます。6.2 賞金
Finals Round に進出・参加・出場した場合、以下の現金賞品のうち1つを受け取ることができます。

Competitor RankPrize Money
1 位$15,000 USD
2 位$2,000 USD
3 位$1,000 USD
4〜25 位$100 USD

6.3 グッズ
Google は、本コンテストへの参加の一環として、Google またはCode Jam ブランドのオブジェクト、Google 関連製品、その他のグッズ(以下、グッズ)をFinal Round 参加者に、その独自の裁量により、時折、プレゼントすることがあります。これらのグッズは賞品ではなく、参加者が賞品として扱うことはできません。グッズの受領者は、適用される税法および申告要件(該当する場合)を遵守する責任を負うものとします。

7. 失格

Coding Competitions Terms(コーディング競技規約)に従って本コンテストの合法的な運営を阻害しようとしたとGoogle が合理的に判断した場合、参加者は本コンテストの参加資格を失い、受け取る資格のある賞品を没収されることがあります。参加者は他の参加者による本規約の違反を codejam@google.com に報告することができます。

7.1 Qualification Round

Coding Competitions Terms の第7.1(E) 項にかかわらず、Qualification Round で問題の情報を使用したり、他の人と情報を共有したりしても、失格にはなりません。

7.2 Final Round

Final Round で失格となった場合、Google はRound 3 から次に資格のある最高ランクの出場者をFinal Round に進めることができます。第6.3 条 Coding Competitions Terms の没収に記載されている条件のいずれかを満たした場合、または以下の場合、Final Round から失格となる可能性があります。

  • (A)Google からのビザレターが届いてから 5 日以内に受領したことを確認できなかった場合。
  • (B)Final Round 参加の案内メールを受け取ってから 2 週間以内に Google の指定旅行代理店にフライトを予約しなかった場合。
  • (C) お客様が、Google またはその指定旅行代理店から送信されたフライト確認メールに 48 時間以内に返信しなかった場合。
  • (D)Final Round の少なくとも 2 週間前までに、Google が要求したビザおよびパスポートに関するすべての書類および情報を提供しなかった場合。
  • (E)Final Round に出場できなかった場合、または出場できなかった場合(例えば、ビザやパスポートの取得が間に合わなかった場合など)。