GigaCode 2019 | 高校生がプログラミングイベントを主催したおはなし

こんにちは、高校2年生のE869120です。
私は、プログラミングの中でも[競技プログラミング](https://ja.wikipedia.org/wiki/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)が好きです。[日本情報オリンピック](https://www.ioi-jp.org/)・[国際情報オリンピック](https://ioinformatics.org/)・[パソコン甲子園](https://web-ext.u-aizu.ac.jp/pc-concours/)・[AtCoder](https://atcoder.jp/)等に出場しており、特にAtCoderでは、作問活動等に積極的に関わっています。

本記事では、競技プログラミングに対する活動の一環として、「[GigaCode 2019](https://gigacode.connpass.com/event/153119/)」というイベントを主催して学んだことや、皆さんにお伝えしたいことについて、記します。


# 1. はじめに
近年、[競技プログラミング](https://ja.wikipedia.org/wiki/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)の存在感が高まり、有名になってきています。例えば、日本の[高橋直大 (chokudai)](https://ja.wikipedia.org/wiki/%E9%AB%98%E6%A9%8B%E7%9B%B4%E5%A4%A7) 氏が社長を務めているプログラミングコンテスト運営会社、[AtCoder](https://atcoder.jp/) には、2017年9月時点で[37,000人](https://prtimes.jp/main/html/rd/p/000000003.000028415.html)、2019年4月時点で[110,000人以上](https://prtimes.jp/main/html/rd/p/000000010.000028415.html)の参加登録者がいるように、2010年代後半になってから日本で競技プログラミングが広まってきています。
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/a1d4f07b-b5e4-036f-10be-e040b84c70ce.png)


特に最近は、[AtCoder Jobs](https://jobs.atcoder.jp/) という、競技プログラミングの実力によって就職活動が有利になるサービスが開発され、利用者は毎年増えています。また、2019年12月には[PAST](https://past.atcoder.jp/)という、高度IT人材の創出を目指すために作られた、AtCoder主催の「アルゴリズム実技検定」が初めて開催されるようです。
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/0b5fb40e-eca7-7b76-bc12-5b379d0cdf8e.png)

そんな中、私達高校2年生2名、[E869120](https://atcoder.jp/users/E869120)・[square1001](https://atcoder.jp/users/square1001) は、競技プログラミング関連のイベントを主催することでIT人材創出に貢献しようと考え、2019年11月24日「[GigaCode 2019](https://gigacode.connpass.com/event/153119/)」を主催しました。高校生が外部イベントを主催するなんて聞いたことがない、イベント主催は社会人のものだ、なんて思っている方も多いかと思いますが、様々な理由があって、私達はイベント開催に踏み切ることにしました。

ただの高校生が書く記事ですので、文章がそれほど上手くないかとは思われますが、良ければお読みいただけるとありがたいです。


## 目次
|章|内容|備考|
|---|---|---|
|1.|[はじめに](https://qiita.com/e869120/items/b1440af876b0c26ced0c#1-はじめに)||
|2.|[本イベントの内容](https://qiita.com/e869120/items/b1440af876b0c26ced0c#2-本イベントの内容)|どんなイベントを開催したのかを書きます|
|3.|[イベント開催の目的](https://qiita.com/e869120/items/b1440af876b0c26ced0c#3-イベント開催の目的)|なんで私がこのイベントを開いたかを書きます|
|4.|[イベント準備](https://qiita.com/e869120/items/b1440af876b0c26ced0c#4-イベント準備)|本記事のメインコンテンツです|
|5.|[結果・反響](https://qiita.com/e869120/items/b1440af876b0c26ced0c#5-結果反響)||
|6.|[イベント開催で学んだこと](https://qiita.com/e869120/items/b1440af876b0c26ced0c#6-イベント開催で学んだこと)||
|7.|[おわりに](https://qiita.com/e869120/items/b1440af876b0c26ced0c#7-おわりに)||


## 本記事のゴール
本記事で最終的に達成したいことは、以下のようになります。

- 読者の皆さんに、競技プログラミングを知っていただく。
- 読者の皆さんに、ITイベントを開催することの面白さ、ITイベントに参加することの面白さを感じていただく。
- 読者の皆さんに、IT界に対する活動に積極的になっていただき、今後そのようなイベントを増やしていく。

# 2. 本イベントの内容
「[GigaCode 2019](https://gigacode.connpass.com/event/153119/)」は、2019年11月24日に

-  [Yahoo Lodge のオープンコラボレーションスペース](https://lodge.yahoo.co.jp/) 

を借りて開催された、高校生主催の[競技プログラミング](https://ja.wikipedia.org/wiki/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)関連のイベントであり、会場での参加者は48名、オンライン参加者を含めて427名と、比較的大規模なイベントとなりました。

このイベントは、プログラミングを触ったことがあれば、競技プログラミング未経験者にも十分楽しむことができるように作られており、結果的に経験者71名、未経験者10名からの応募がありました。
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/99a9a23c-a89c-081e-4a08-29894ed61560.png)

この章では、以下の3点を書きたいと思います。

- この記事を読んで、「競技プログラミングって何？」と思った方も多いと思うので、競技プログラミングとは何か、説明する。
- 「GigaCode 2019」参加者・応募者について、また参加者の層について説明する。
- 「GigaCode 2019」でどのような内容の企画を行ったか、それぞれの企画に分けて説明する。


## 競技プログラミングとは？
「競技プログラミング」とはどのようなものなのでしょうか。何の競技なのでしょうか。楽しいのでしょうか。美味しいのでしょうか。まだこの言葉を聞いたことがない方にはピンとこないかと思います。

ざっくり書くと、プログラミングコンテストとは、**プログラミングを使って解くことができる問題を、制限時間内にどれだけ多く解けるかを競うもの**です。

つまり、[数学オリンピック](https://www.imojp.org/)や[チェス](https://www.chess.com/)のプログラミングバージョンだと思っていただけると分かりやすいと思います。また、ITの仕事に就いている方は、面接でよくある「コードテスト」を競技化したものだと思っていただけると分かりやすいかもしれません。
![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/c7a3a14f-13e2-88a4-6934-2784ada489c8.png)
(勉強か？趣味か？人生か？―プログラミングコンテストとは pp.4-5 を引用)

プログラミングコンテスト自体について、詳しく知りたい方は以下の記事をお読みください。

- [勉強か？趣味か？人生か？―プログラミングコンテストとは](https://www.slideshare.net/iwiwi/wakate-web-14323842)
- [競技プログラミングって何？ (はじめての高校生向け)](https://qiita.com/sifue/items/d582f3af426f524e5394)

また、競技プログラミングのコンテストではどのような問題が出題されるのか？そしてどのような形式でコンテストが開催されるのか？と疑問に思った方は、

- [AtCoder | 競技プログラミングコンテストを開催する国内最大のサイト](https://atcoder.jp/)

をご覧ください。また、簡単な問題の例として、

- [AtCoder Beginner Contest 145 A - Circle](https://atcoder.jp/contests/abc145/tasks/abc145_a) 
- [AtCoder Beginner Contest 144 A - 9x9](https://atcoder.jp/contests/abc144/tasks/abc144_a)
- [AtCoder Beginner Contest 140 A - Password](https://atcoder.jp/contests/abc140/tasks/abc140_a)

などが挙げられます。競技プログラミングの問題についてより詳しく知りたければ、是非こちらもご覧ください。


## GigaCode 2019 とは一体何なのか？
**応募者・参加者**
「GigaCode 2019」は競技プログラミング経験者だけでなく、未経験者にも参加できるイベントとなっており、経験者71名（内ヤフー社員3名）・未経験者10名の合計81名から応募がありました。
![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/ff5f244f-40e3-9a88-136d-303046e86066.png)


会場スペースの都合上、応募者全員を招待するのは不可能だったので、抽選の結果、以下の51名を招待することとなりました。

- 競技プログラミング経験者：40名
- 競技プログラミング未経験者：8名
- ヤフー社員参加枠：3名

最終的には、当日欠席者が3名出たため、48名が参加することとなりました。

**参加者層**
参加者層は、以下のようになりました。
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/1ae9510c-bf0b-6ab2-d48c-dacab91fc269.png)


**企画**
このイベントでは、主に以下の3つの企画を行うこととなりました。

- ライトニングトークセッション (LT 大会)
    - 競技プログラミングに関連する、5分程度の発表をイベント参加者が行う。
    - 当イベントでは、13名が発表を行った。
- アルゴリズム・パズル
    - パソコンを使わずに、「アルゴリズムとは何か」「アルゴリズムの面白さとは何か」を手で実感することができる、パズルのような問題を解く。
    - 15分で3問のパズルを解く。
    - GigaCode 2019 開催前に、同様の企画が[開成中学校・高等学校](https://kaiseigakuen.jp/)文化祭で、コンビューター部にて行われ、好評だった。
- コンテスト
    - 競技プログラミングの問題8問を、3時間で解く。
    - コンテストサイトは、先程紹介した[AtCoder](https://atcoder.jp/contests/gigacode-2019)を利用した。
    - 1問当たり100点満点で、各問題につき実行速度・データの正解率に応じて得点が与えられる。

その他にも、懇親会などがあり、タイムスケジュールは以下のようになりました。

|時間|内容|
|---|---|
|10:00 ～ 10:30|開場・受付|
|10:35 ～ 10:50|オープニング|
|10:55 ～ 11:35|ライトニングトークセッション前半（5分×7名）|
|11:45 ～ 12:25|ライトニングトークセッション後半（5分×6名）|
|12:30 ～ 13:10|昼休み（弁当）|
|13:10 ～ 13:25|競技プログラミングに関する説明|
|13:30 ～ 16:30|コンテスト|
|16:45 ～ 17:35|アルゴリズム・パズル|
|17:50 ～ 18:20|表彰式・閉会式|
|18:30 ～ 19:30|懇親会|

### ライトニングトークセッション
「ライトニングトークセッション」では、競技プログラミングに関連する5分間の発表を、計13名が行いました。その中でも面白いものはたくさんありました。各LT資料は以下のようになります。

- [1. anchor_cable 氏, Performanceを上げたいので自動化してみました --提出、テスト、そんなものは自動化だ！](https://drive.google.com/file/d/14iPOzP2qdLrCbynraly6jviqtpuFd3sA/view?usp=sharing)
- [2. shibh308 氏, バイトコード生成をして遊んでみる](https://docs.google.com/presentation/d/1XOBNjegIGeU9tpHCwYtPFlnoejSjycQXprxqg85vmfE/edit)
- [3. komugi 氏（当日欠席）, 【探してたあのテンプレ】競プロerのためのC++テンプレート講座【チートシート】](https://drive.google.com/file/d/17UDIND4Q-pt0EmNqp3Y2VP0y2_BEAN4m/view?usp=sharing)
- [4, p4sobaya 氏, バルーンアートの設計をグラフ問題に帰着させる](https://docs.google.com/presentation/d/1sc27isNtKd0JD_J1_ZOAG2fSEgI2T0ULNYgmiMHWVo0/edit#slide=id.p)
- 5, morimario 氏 + pw_miyamoto 氏, 私と競技プログラミングと残業（仮）
- [6, startcpp 氏, 問題を言い換える一般的なテク](https://drive.google.com/file/d/12zAWsguVDiNXD59H7WbSTIxdJn9N0NhM/view?usp=sharing)
- [7, tatyam 氏, 並べ替え最大素数を求める](https://drive.google.com/file/d/1s-eZHrgp9NHLnLvYtaX3Q_4-dRdmir8V/view?usp=sharing)
- [8, kaage 氏, AtCoder で水色になるまでにやったこと](https://drive.google.com/file/d/1-HaBQ5gPLqHqFd_RC0JWn27aaxpfitgn/view?usp=sharing)
- [9, harady 氏, AtCoder で水・青になるまでにやったこと](https://docs.google.com/presentation/d/1obho62YITg6Bn8T6XCF8RCdMmZPP-1KUSJbQhJs2Xh4/edit#slide=id.g1f87997393_0_782)
- [10, aajisaka 氏, Virtual Contest の開き方](https://drive.google.com/file/d/1YxL3qpdPFEHbpM2-PjB4ql5RkCPjNr2i/view?usp=sharing)
- [11, rabot 氏, コーナーケースに気を付けろ！](https://drive.google.com/file/d/132_0PuzoMTpLruPMGR10pF9gDQoj5nWI/view?usp=sharing)
- [12, fuppy0716 氏, GAN を用いた人間の未来予測](https://drive.google.com/file/d/1Yw5kAaZsoXU3djAwTPU_o-LNfnW0j0FR/view?usp=sharing)
- [13, kotamanegi 氏, 並列計算のすすめ](https://drive.google.com/file/d/1dlbrzUZ3CnKrcB0bEDzQXQoy-GIRXdSC/view?usp=sharing)


### アルゴリズム・パズル
アルゴリズム・パズルでは、プログラムを一切書かないというルールの下で、アルゴリズムを体感することができる問題が出題されました。
![8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/305d01d7-33ef-5c74-d5f2-4fed297af686.png)
(問題1「銃士の迷路」プレイ画面)

イベント運営の [square1001氏](https://atcoder.jp/users/square1001)がWebページを作成し、競技が行われました。現在もご自由に遊べる状態となっておりますので、よろしければ是非プレイしてみてください。

- Webページ：https://square1001.github.io/gigacode-2019-puzzle/
- 問題文：https://square1001.github.io/gigacode-2019-puzzle/
- 解説：https://drive.google.com/file/d/16f2ZbwpchbrgWLr8abRkOOTwnyvhM3qk/view

### コンテスト
コンテストは、[AtCoder](https://atcoder.jp/)というジャッジシステムを用いて開催されました。コンテストページは[こちら](https://atcoder.jp/contests/gigacode-2019)となります。問題は8問出題されましたが、最も簡単な問題である1問目「[教室](https://atcoder.jp/contests/gigacode-2019/tasks/gigacode_2019_a)」では、以下の問題が出題されました。
> ギガ高校には $A$ 個の教室があり、すべての教室は一辺が $B$ メートルである。
> この高校の合計面積を求めよ。

この問題は非常に単純であり、入出力と簡単な演算を用いて以下のように解くことができます。

~~~cpp
#include <iostream>
using namespace std;
int main() {
    int A, B;
    cin >> A >> B;
    cout << A * B * B << endl;
    return 0;
}
~~~

結果的に、この問題はオンライン参加者含め427名中420名が正解し、平均点は98.4点と高くなりました。一方で、最終問題である8問目「[論理回路の構成](https://atcoder.jp/contests/gigacode-2019/tasks/gigacode_2019_h)」は、とてつもない量のプログラムの実装と数学的考察を必要とし、とても難しく、オンライン参加者を含めても満点獲得者数0名、平均点1.96点となりました。


# 3. イベント開催の目的
イベント開催には莫大な労力が必要です。でも、なぜ私達はイベント開催に踏み切ったのか。その目的を説明していきたいと思います。

## 目的1 - 競技プログラミングの面白さに気付いてもらうこと
競技プログラミングは

- オンラインで行われる「コンテスト」が活動の中心である
- 毎週コンテストが行われるだけで、初級者・中級者にはそれといった大会（運動部でいう区大会、都道府県大会など）がない
- [全国統一プログラミング王決定戦](https://atcoder.jp/contests/nikkei2019-2-qual)などといった、企業コンテストも存在するが、本選に行けるチャンスがあるのは一握りの最上級者のみ

ですので、初中級者には面白みを感じにくいスポーツだと思います。

中高生には[日本情報オリンピック](https://www.ioi-jp.org/)という、気軽に個人参加できる年一回の大会があるのですが、大学生以上となるとそのような大会がなくなります。特に、部活やサークルなどにライバルがいない環境下だと、あまりやる気が出ない参加者も多いのではないか、と私は考えています。

実際に、AtCoder コンテストに 1 回以上参加している人の中で、AtCoder の問題を何問解いているかの分布を[AtCoder Problems](https://kenkoooo.com/atcoder/#/table/)を用いて調べたところ、以下のようになりました。
![9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/fe159102-034a-0eb2-a11a-2fb6f387bd15.png)
これを見る限り、50問以上解いているユーザーが全体の30%程度、300問以上解いているユーザーが全体の6%程度であることが分かります。つまり、ほとんどのAtCoderユーザーは「競技プログラミング」に対するやる気がそれほどないのです。正直300問は、毎日2問を半年弱解き進めるだけで達成可能であり、[AtCoder Beginner Contest](https://atcoder.jp/contests/archive?ratedType=1&category=0&keyword=)のA,B問題相当であれば、プログラミングに慣れていれば20分程度で2問を解けます。

言い換えると、AtCoderユーザーのほとんどが「競技プログラミング」に対する面白みをほとんど感じられずに終わってしまうという、残念な事実があるのです。

逆に、1500 問以上の過去問を解いた人の中では、
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/e76e390d-c2da-0822-f06a-57df337b0827.png)
衝撃の事実かもしれませんが、39人中34人が黄色以上となっているのです。そのため、競技プログラミングの面白さを大いに感じ、たくさんの問題を解いた参加者ほど実力が高くなっているのです。逆に、コンテストの時だけ問題を解く、そもそもコンテストにも出ない、といった参加者は全体的に実力が低くなっています。

そのため、私達イベント運営は、全国の競技プログラマー達が

- 実際の会場で集まって行われるイベントに一度でも参加していただく

ことにより、競技プログラミングの楽しさを深く感じていただき、イベント開催後に過去問をたくさん解き、実力を上げ、そして将来的には高い実力を持つIT人材が増えればいいと思い、「GigaCode 2019」を開催しました。

## 目的2 - 今までお世話になった競プロ界に貢献する
私は、2015年11月に[AtCoder Beginner Contest 031](https://atcoder.jp/contests/abc031)に参加することによって競技プログラミングを始め、早4年となりました。今は晴れて[赤コーダー](http://chokudai.hatenablog.com/entry/2019/02/11/155904)になりましたが、このうち95%は、私に対してアドバイスをくださったり、私が作問したコンテストに参加したりしてくださった、良き競技プログラマー達のお陰だと思っています。

私は何百人もの競技プログラマー達にお世話になったので、1年ほど前から、自分もそろそろ貢献する番なのではないか、恩恵を受け続けるだけではダメなのではないかと考え始めました。そんな時、2019年8月に、

- [東京工業大学プログラミングコンテスト 2019 オンサイト](https://atnd.org/events/107816)

という大学生有志が主催するイベントに参加して、それをとても楽しく感じました。そこで私は、イベント開催をすることによって、競技プログラミング界に貢献できるのではないかと考えました。それが「GigaCode 2019」開催理由の一つです。


# 4. イベント準備
競技プログラミング関連のイベントを開催するのは、莫大な準備量が必要です。私達運営は、例えば以下の準備を行う必要があります。

- [コンテスト](https://qiita.com/e869120/items/b1440af876b0c26ced0c#コンテスト)の作問・準備
- [アルゴリズム・パズル](https://qiita.com/e869120/items/b1440af876b0c26ced0c#アルゴリズムパズル) の作問・Webページの作成
- 懇親会食料・弁当・メダル等の手配
- [競技プログラミングに関する説明の資料](https://drive.google.com/file/d/1gtsjMfhTk1WstH3lSL8Fyr_dkBWUQmtv/view?usp=sharing)作成
- 200件を超えるイベント連絡メール送信（個人情報等が含まれると一斉に送れない、また経験者未経験者等の状況に応じて個別に送る必要あり）

それ以前の問題として、会場を取る、イベント開催の許可を関係者から取る、などといった準備もあるので、全体の準備量はとても多いです。そんな中、私達運営がどのような過程で、2カ月間でイベントの企画から実行までやったかを伝えることを、本章のゴールとします。

## 2019.9.15 頃～
[パソコン甲子園](https://web-ext.u-aizu.ac.jp/pc-concours/)予選が終わったその頃、「競技プログラミング関連のイベントを開催する」という計画が運営2人の間で挙がりました。そして、イベントの中身をどうするか、議論が活発に行われました。例えば、

- 「コンテストと懇親会だけだと、普通の競プロイベントと同じになってしまう。これだと斬新ではなく、主催も高校生なので、あまり参加者が増えないだろう。 (square1001)」
- 「Not Only Contest をテーマとして掲げよう。コンテスト以外に、どういう企画が作れるかな？ (square1001)」

その結果、「[ライトニングトークセッション](https://qiita.com/e869120/items/b1440af876b0c26ced0c#ライトニングトークセッション)」・「[アルゴリズム・パズル](https://qiita.com/e869120/items/b1440af876b0c26ced0c#アルゴリズムパズル)」といった新企画が続々と生まれました。
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/51160762-3b49-0706-0f17-018c908dbd2f.png)

## 2019.9.22 頃～
私達はただの高校生ですので、運営で様々な決断を下すのは難しいです。そのため、ITイベントに関わった経験のある、以下の3名に内容等に関する相談を行いました。

- [Nafmo 氏](https://twitter.com/Nafmo2) : 高校一年にして [CombNaf](https://combnaf.connpass.com/) というプログラミングイベントを開催した強い人。（下のやり取りは掲載許可をもらっています）
![12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/e437328e-e625-f730-d8bb-24089bd3ac3a.png)

- [drken1215 氏](https://twitter.com/drken1215) : 様々な競技プログラミングイベントに関わった経験があり、「[AtCoder 過去問精選10問](https://qiita.com/drken/items/fd4e5e3630d0f5859067)」などの有名記事を何十本も執筆している強い人。（下のやり取りは掲載許可をもらっています）
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/9ab45fd4-01fb-5a3c-45f6-c40c2781cdc0.png)

- [chokudai 氏](https://twitter.com/chokudai) : [AtCoder株式会社](https://atcoder.jp/) の社長をやっている、明らかに強い人。

## 2019.10.9 頃
その日、イベント関係者と最終的な確認を取りました。その結果、[AtCoder](https://atcoder.jp/) でコンテストを開催したことのある A 社に、イベント開催の申請を行うことにしました。

## 2019.10.10
A 社の、競技プログラミングで有名な T 社員に連絡を取りました。その際に、[オンサイトコンテストの開催について（外部向け）](https://drive.google.com/file/d/1yWkTeqgwzo1AAMdqZTkZr_omABavOmdy/view) という資料を渡し、これをベースにしてイベント開催に関する話し合いが始まりました。
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/cdf86b28-03c9-f572-6289-d073b46e18bf.png)
T 社員と相談した結果、「競技プログラミング未経験者枠」を新設することとなりました。その後、A 社では一週間程度かけて社内で相談が行われたようです。

## 2019.10.17
A 社から返事が来ました。

- 11月・12月は厳しいが、2月以降なら可能。

という内容でした。私達は一応高校2年であり、[大学受験](https://ja.wikipedia.org/wiki/%E5%A4%A7%E5%AD%A6%E5%8F%97%E9%A8%93)や[最後の情報オリンピック](https://www.ioi-jp.org/)などがあるため、できるだけ早い時期に開催したかったのです。そのため、A 社に確認したところ、
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/bae5753a-618e-3434-83a5-4eb19fadd5f4.png)
とのことでしたので、同時並行で別の会社にもイベント開催申請を行うことにしました。そこで、「[みんなのプロコン](https://atcoder.jp/contests/yahoo-procon2019-qual?lang=ja)」を毎年開催している[ヤフー株式会社](https://about.yahoo.co.jp/)を選ぶことにしました。


## 2019.10.18
Yahoo Lodge でイベントを主催するための申請を行うには、「[イベント主催者合同説明会](https://lodge.yahoo.co.jp/event_pc.html)」に必ず出席しなければなりません。その日は丁度休校だったので、11:30～12:30 に行われた合同説明会に参加することができました。

Yahoo Lodge でイベントを開催するためには、最大2週間の審査を受ける必要があり、それを通らなければなりません。当然高校生2人だと大失敗するのではないか、という不安を持たれると思うので、通過率はとても低いと予測していました。
![18.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/6a4195a1-04c9-98a6-f67f-83fd3d3c03c0.png)
この厳しい審査を通るために、[イベント開催申請フォーム](https://forms.business.yahoo.co.jp/webform/Inquiry/InquiryTop?inquiry_type=lodge-event_20195)の欄にある「イベント概要」等の他にも、「備考」欄にイベントの目的や、開催された場合の Yahoo 様にとっての利益等を 3,000 文字程度書き、更に [Nafmo 氏](https://twitter.com/nafmo2?lang=en) や [drken1215 氏](https://twitter.com/drken1215?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor) に内容を修正していただきました。本当にありがとうございます。

そして午後10時51分、イベント開催フォームを提出しました。

## 2019.10.23
午後7時前、Yahoo Lodge 様から、以下の質問が来ました。

- ヤフー社員参加枠からもLTに出場することができるか
- ヤフー主催イベントのチラシを配布してもよいか

翌日、関係者に確認を取ったところ、LTは5分(1枠)以内であれば問題なし、チラシも問題なしという返信をいただいたので、その旨を返信しました。

## 2019.10.24
午後4時、Yahoo Lodge 様から返信が来ました。
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/952a4b58-5037-6aec-d6ab-c47204908711.png)
明日 (10/25) までには結果が来るということで、人生初のイベント開催が実現できるかどうかの結果を待つ、緊張の一夜を過ごしました。

## 2019.10.25
午後4時、Yahoo Lodge 様から返信が来ました。
![21.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/6c74dc9b-5a42-4812-05e3-7c110b9a3a0b.png)
そして、イベントが開催できることとなりました！！！！！

## 2019.10.28 頃
[イベント参加登録フォーム](https://gigacode.connpass.com/event/153119/)を数時間かけて作成し、28日15時に公開しました。フォームには、氏名・所属だけでなく、アレルギーの有無、LT参加するかどうかなども記入することにしました。
![22.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/fae1189e-d08f-da82-2c63-2ad70cf28a58.png)
それと同時に、[「GigaCode 2019」公式アカウント](https://twitter.com/GigaCode2019)からツイートを行いました。
![23.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/21643c81-3a63-68be-0ccf-57e349a9253d.png)

多くの競技プログラミングイベントでは、初日から数十人の応募が来るので「GigaCode 2019」もそうなるのではないかと期待していたのですが、公開から3時間経過時点での応募者数は**1人**でした。私達運営は、最終的に10人くらいしか応募が来ないのではないか、と絶望していました。

## 2019.11.8 頃
その頃には、コンテストに出題する問題に関する相談が行われておりました。
![24.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/17312e28-edee-d5ab-cfa1-99093d2e6110.png)

## 2019.11.11
参加登録フォーム公開初日の予想に反し、締切直前にも申し込みが殺到し、ヤフー参加枠3名を除いて78名の応募が来ました。そしてイベント応募ページは、合計5,000回以上のページビュー（PV）を獲得し、2,300名以上のユーザーに閲覧されました。「GigaCode 2019」の形式が先着制ではなく抽選制だったことが、初日に応募が少なく、締切直前に応募が殺到した理由だと考えられます。
![25.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/039511b3-3cc3-88d4-e15b-5fb453ff0507.png)
その後、抽選を行い、午後10時半頃には参加者・補欠順が確定しました。

## 2019.11.12 頃～
その頃は、「イベント落選メール」「イベント当選メール」「参加登録情報確認メール」などを送るのに手いっぱいであり、3日間で100件を超えるメールを送っていました。社会人、特に事務をやっている人のお気持ちになることができました。

参加登録情報確認の返信締切は 11/14 17時だったのですが、締切の時点で48人中40人からしか返信がなく、別途催促のメールを送る必要があるなど大変でした。結果的に、11/13, 14, 15 の3回に催促メールを送りました。私は事務の大変さを痛烈に感じました。
![26.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/de766d2e-911a-6bdc-e0cf-e70f2eb654b3.png)

## 2019.11.14
その頃に、メダル・懇親会食料・弁当の注文を行いました。

- 懇親会：[シェフコレのサンドイッチ](https://www.chef-colle.com/regalato/660-sandwich-b/)を注文。
- 弁当：[ドリームランチ](http://www.dreamlunch.net/)の唐揚げ弁当を注文。
- メダル：[ジョイタス](https://www.joy-tas.com/)から注文。

アレルギー等に関しては、参加登録フォームで既に質問しているので、対応が非常に楽でした。やっぱり事前にフォームなどの質問できるところで聞いておくのは重要ですね。

## 2019.11.16
3回の催促メールにも関わらず、返信が無かった応募者が2名いたため、強制キャンセルにしました。

その結果繰り上げが発生しましたが、11/15 午後の時点で、当時の繰り上げ順位4番以内の応募者に対して「何度催促しても連絡しない人がいるので繰り上がる可能性があります、繰り上がってメールが来た際は早く返信してください」という連絡をしていたからか、繰り上げ参加者全員から、16日午後までに参加登録情報確認の返信を得ることができました。
![27.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/171b881b-5211-74bd-1b14-9dd6b2fcf522.png)

## 2019.11.20
「GigaCode 2019」プロモーションビデオが公開され、Twitterで**104いいね**が付くなど話題になりました。
![29.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/90aae671-7e92-89d9-4d9b-0faf223db30a.png)


## 2019.11.21
[アルゴリズム・パズルのWebページ](https://square1001.github.io/gigacode-2019-puzzle/index.html)の作成が、ほとんどこの1日で終わりました。同時並行で、もう一人の運営である私は、プレゼン資料を書いたり、開会式・閉会式のスライドを書いたりしていました。

## 2019.11.23
イベント前日です。その時点で、最終確認以外ほぼ準備が終わっていました。ただ、私はちょうどその日に開催された[DISCO presents ディスカバリーチャンネルコードコンテスト (DDCC) 2020 予選](https://atcoder.jp/contests/ddcc2020-qual)の作問者であったため、その準備で忙しく、あまり作業ができませんでした。

DDCCコンテスト準備の合間を縫って、GigaCode 2019 のコンテスト解説スライドを書いたりしていましたが、結局時間ギリギリになってしまいました。

開会式・閉会式等の最終リハーサルが始まったのは、翌日午前1時20分。そして終わったのは午前2時37分という、とんでもないギリギリさで準備が完了しました。
![28.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/1dea0aff-813b-49cc-2de4-55f14cb97521.png)


# 5. 結果・反響
イベントは無事開催され、48名が会場で参加しました。また、オンラインで参加した人も多く、[コンテスト](https://qiita.com/e869120/items/b1440af876b0c26ced0c#コンテスト)には379名、[アルゴリズム・パズル](https://qiita.com/e869120/items/b1440af876b0c26ced0c#アルゴリズムパズル)には20～50名程度が、オンライン参加をしました。

また、当日の設営や片付けは[ヤフー株式会社](https://about.yahoo.co.jp/)参加枠の3名（[aajisaka 氏](https://atcoder.jp/users/aajisaka), [kiseichu 氏](https://atcoder.jp/users/kiseichu), [smiken 氏](https://atcoder.jp/users/smiken)）が手伝ってくださったため、余裕を持って運営を行うことができました。本当にありがとうございました。

## アルゴリズム・パズル
15分という短い制限時間の中、競技プログラミング初心者であっても、多くが120/300点以上を取ることができていました。また、上位は300点中290点台という、満点近い争いとなりました。1位は[Osmium_1008 氏](https://atcoder.jp/users/Osmium_1008)で、なんと298/300点でした。

## コンテスト
優勝者は[smiken 氏](https://atcoder.jp/users/smiken)で、800点中651点という、全体の8割以上の超高得点を獲得しての優勝となりました。各メダルボーダーは、以下のようになりました。

|景品|順位|ボーダー|
|---|---|---|
|優勝|1位|651/800 (81.38%)|
|金メダル|1～5位|606/800 (75.75%)|
|銀メダル|6～13位|557/800 (69.63%)|
|銅メダル|14～25位|467/800 (58.38%)|

余談ですが、なんと！[AtCoder](https://atcoder.jp/)世界ランキング19位の[Egor 氏](https://atcoder.jp/users/Egor)がなぜか参戦しておられ、713/800点でオンライン優勝をしていました。詳しいコンテストの結果は、[GigaCode 2019 コンテストページ](https://atcoder.jp/contests/gigacode-2019)をご覧ください。成績上位者一覧とメダル獲得者一覧が載っています。

## イベントの反響
11月27日、イベント終了後アンケートを行いました。その結果が以下となります。

**質問 #1: イベントはどれくらい良かったですか。(データ数 33)**
![30.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/911e07c6-0db2-5a0d-c738-db7469231762.png)

**質問 #2: 次回イベントを開催してほしいですか。(データ数 34)**
![31.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/30650e21-f37f-3a76-7b70-b80c0e113302.png)

このように、私達運営が想定していたより大幅に高い評価を得ることができました。

ただ、イベントが成功したのは、イベント開催スペースを貸してくださった[ヤフー株式会社様](https://about.yahoo.co.jp/)、イベント設営・撤収等のお手伝いをしてくださったヤフー参加者枠3名様、そしてイベントを盛り上げてくださった参加者の皆様のお陰です。本当にありがとうございました。

# 6. イベント開催で学んだこと
最後に、当イベントを主催して学んだことを書きます。イベントに参加して学ぶことは多いですが、実はイベントを主催して学ぶことも多いのです。

本記事では、それらの中でも重要な13項目を紹介していきたいと思います。

## 準備以前の問題
- **しっかり計画を建ててイベント準備を行うことが大切だと思いました。**今回は 11/24 開催がギリギリ間に合う計画だったので、その日程にしましたが、例えば開催日が 11/17 の場合、準備に10日程度しかかけられません。その結果間に合わず、イベントが破滅するというパターンもあり得ます。
- **イベント運営において、計画は余裕を持って建てるのが重要だと思いました。**準備において、例えば「コンテスト問題が差し替えになった」「メダルの配送が遅れる」などといったトラブルが発生する可能性は高いです。そういう時にキツイ計画を建てた場合、後がなくなり、調整が不可能なのでイベントが破滅してしまいます。
- イベント運営を高校生2人で行うのは困難です。高校生に限らず、ITイベントの運営を2人だけで行うのは難しいと思います。そのため、**気軽に相談できる人を予め用意しておくことが重要だと思いました。**

## イベント登録ページについて
- **イベント参加登録フォームには、できる限りの質問を書くべきだと思いました。**最低でも氏名・所属・連絡先メールアドレスは必要だと思います。また、懇親会がある場合は「アレルギー等」も書く必要があり、その他にも「他に参加者からの連絡事項がある場合は書いてください」という欄も付けるべきだと思いました。
- 競技プログラミング未経験者をイベントに誘いたい場合、**「未経験者等に対して宣伝・告知活動を行いますか」という質問を登録フォームに入れるべき**だと思いました。実際に、本イベントの未経験者枠参加者の半分程度が、経験者枠応募者からのお誘いによって参加したというケースです。 
- 当日来れなくなる参加者も多いので、**参加費を徴収するイベントの場合、イベントページにキャンセル料を明記するべきだと思いました。**今回は明記しませんでしたが、書いておいた方がよりスムーズに物事が進む可能性が高いと思います。

## 準備において
- **期限に遅れない**ことはとても重要だと思いました。イベント主催において、会社側から「11月XX日までに資料を提出してください」などといった連絡が来ることも多いと思います。これに遅れると信頼を失い、イベントが開催できなくなる可能性があります。
- **景品や食料などの注文は10日前までに行うべきだと思いました。**基本的に発送は1週間以内で終わる場合が多いですが、「会社の製造の遅れ」「発送の遅れ」「実は在庫が無かったパターン」など、様々なトラブルが考えられるからです。
- **イベントでコンテストをやる場合、testerは基本4人以上つけるべきだ**と思いました。
    - イベント運営が作問者である場合、イベント中は忙しく、ほぼ何も対応できないと考えてよいです。そのため、「問題文の不具合」「テストケースのミス」などは相当減らす必要があります。
    - またtesterを多く付けるべき理由として「当日質問対応ができる人が増える」が挙げられます。（今回のtesterは4名で、[sheyasutaka氏](https://atcoder.jp/users/sheyasutaka), [physics0523氏](https://atcoder.jp/users/physics0523), [Luma氏](https://atcoder.jp/users/luma), [QCFium氏](https://atcoder.jp/users/qcfium)でした。ありがとうございます。）
- イベント準備における様々な判断・決断は、**外部で投票を取らずに運営で決めるべきだと思いました。**
    - 失敗談なのですが、11/14 に投票を取ってしまい、色々言われました。
    - 実際に、Twitterの投票は、真剣に投票する人が全員という訳では全くないので、運営内で話し合うのが最も良いと思います。

## 当日運営において
- 当日は、「LTのみ」「コンテストのみ」などの場合はそこまで難易度が高くないのですが、集金が入った瞬間難易度が大幅に上がり、食料の提供が入るとさらに難易度が跳ね上がります。そのため、**当日の動きをある程度イメージして動かないと大変なことになると思います。**
- 当日は**笑顔で接することが大事だ**と思いました。実際に私達運営は50%くらいの時間しか笑顔でいられませんでしたが、運営が笑顔だと会場の空気に余裕が生まれ、より良い雰囲気になると思いました。
- 当日の設営は2名だと正直難しいです。私が想定していたよりも倍くらいやることが多く、終わったのは受付開始時刻ギリギリ(2分後)でした。そのため、**当日スタッフを増やすか、イベント参加者の中からある程度設営に協力してくれる人を出す**という手段が有効だと思いました。

以上、13項目だけイベントにおける注意点などを紹介しておきました。他にも学んだことは多いのですが、本記事の分量バランスを考え、13項目にまとめました。

# 7. おわりに
まずは、イベントの相談に乗ってくださるなどして協力してくださった [chokudai 氏](https://twitter.com/chokudai?lang=en), [tsukammo 氏](https://twitter.com/tsukammo), [drken1215 氏](https://twitter.com/drken1215), [Nafmo 氏](https://twitter.com/Nafmo2)、イベントの設営・撤収等にご協力してくださった [aajisaka 氏](https://atcoder.jp/users/aajisaka), [kiseichu 氏](https://atcoder.jp/users/kiseichu), [smiken 氏](https://atcoder.jp/users/smiken)に、改めて感謝申し上げます。

今回の「GigaCode 2019」をきっかけに、競技プログラミングに関心を持つ人が増え、結果として高度IT人材が増えることを願っております。また、本記事が一人でも多くの人の役に立つことができたならば、本当に嬉しいです。

記事は以上です。ただの高校生が書く記事ですので、理解しにくかったかと思いますが、最後までお読みいただきありがとうございました。
![32.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507979/867ce8a3-b600-80c5-db4c-640b0b6f033f.png)