情報オリンピック(JOI)の難易度を完全解説|一次予選・二次予選・本選の違い、AtCoderとの関係とは
2026-04-02
情報オリンピックに挑戦する中学生・高校生向けのプログラミング学習サービス「HaruCoder」を運営している、星出です。 指導を通じて感じたリアルな難易度感をお伝えします。
情報オリンピックについて生徒と話していると、
「興味はあるけど、自分のレベルで挑戦していいのかわからない」
という声をよく聞きます。 確かに、プログラミングは学校の勉強と違ってテストや試験が無いので、自分のレベルを客観的に把握するのは難しいかもしれません。
この記事では、情報オリンピックの具体的な問題や実際に受験した生徒の様子を交えて、情報オリンピックの難易度を段階ごとに解説していきます。
JOIとAtCoderの関係
まずはじめに、AtCoderレーティング と JOI の関係について書いておきます。 AtCoderについてよく知らないという方は、こちらの記事などが参考になりますので、ぜひご覧ください。
さて、AtCoderをやっている子なら、レーティングを見ればある程度客観的な能力値を測ることが可能です。目安としては、
- 一次予選突破:レート100前後
- 二次予選突破:レート1000 〜 1200 (緑上位〜水色下位)
- 本戦突破:レート2000相当(黄色相当)
- 春合宿:日本トップ4人
- 世界大会へ
というふうになっています。 みてわかる通り、一次予選突破から二次予選突破の間には壁があります。 AtCoder全体のレーティング分布を見ても、その壁の高さがよくわかります。
<!-- TODO: AtCoderレーティング分布の画像を追加 -->一次予選突破レベルの「レート100付近」はボリュームゾーンですが、二次予選突破の「レート1000付近」はかなり少なく、全体で見ても上位10%程度です。(これは大学生や大人も含めたレーティングです)
なぜこんなにも差が出ているのか。 そして、この壁を超えるにはどうすればいいのか。
段階を追ってみていきましょう。
一次予選について
まず、一次予選の大きな特徴は 絶対評価であること です。 他の人の点数がどうあれ、自分の点数次第で誰でも突破することができます。
それも無茶な難易度ではありません。ある程度きちんとプログラミングを勉強した人なら誰でも突破できるよう設計されており、基礎的なプログラミング能力を示す資格のような位置付け として語られることも。
ブロックコードの次の段階として本格的なプログラミング・コーディングの勉強を始める小学生・中学生のみなさんは、まずはこの一次予選突破を目標にすることをオススメします。
問題形式・難易度
一次予選では例年、1 時間 20 分で 4 問の問題が出題されます。 簡単な方から順番に A 問題、B 問題、C 問題、D 問題と呼ばれ、4 問中 3 問に正解することが一次予選突破の条件です。
各問題の難易度は
- A 問題:変数 + 演算 + 出力
- B 問題:条件分岐
- C 問題:繰り返し、文字列系
- D 問題:配列、二重ループ
となっています。 各問題の具体例を載せておくので、興味があればぜひ解いてみてください。
- A 問題例:長方形 2022年 一次予選 第一回 A問題
- B 問題例:散歩 2024年 一次予選 第一回 B問題
- C 問題例:運動会 2021年 一次予選 第三回 C問題
- D 問題例:差 2023年 一次予選 第三回 D問題
問題を解いてみるとわかりますが、C 問題と D 問題の間にもまた難易度の壁があります。去年 HaruCoder 生の中で一次予選を実施した際にも、C 問題までの正解者数に比べて D 問題の正解者数はかなり少数でした。実際、勉強を始めて 1 年目で一次予選を満点突破できる人はなかなかいないでしょう。 学習の目安として、まずは一年目に「C 問題までクリアして一次予選突破」を目標とし、二年目で「満点突破」を目指すのをオススメしています。
逆にいえば、D 問題が解けて「配列や二重ループの問題ならもう解ける」という状態になれば、基礎的なプログラミング能力はバッチリ備わっていると思って差し支えありません。 そして同時に、D 問題正解は二次予選への挑戦切符です。
二次予選について
二次予選の特徴は、なんといってもその難易度、そして 上位150人 ~ 120人しか突破できない という門戸の狭さです。 「各種スポーツに例えると、インターハイ出場に相当する」という記述もあります。
情報オリンピックの参加者は例年増え続け、今では 5000 人ほどの中高生が参加していますから、単純計算でも 倍率33倍 というとんでもないことになっています。 とんでもないことになっていますが、もし突破できればその恩恵は一次予選の比ではありません。具体的には、大学入試の際に強いアピールポイントになる他、大学によっては特別推薦枠に応募できたり、資格と同様に提出書類として使えることが明記されていたりします。
- 東京都立大学 システムデザイン学部
- 一橋大学 ソーシャル・データ・サイエンス学部
- 名古屋大学 工学部
- 関西学院大学 理系学部
等がそれにあたります。
さて、そんなとっつきにくさ満点の二次予選ですが、とっつきやすいところもあります。それは、部分点がある ことです。 確かに一次予選に比べて問題の難易度は一気に上がりますが、難しい問題を完璧に解く必要はなく、「解けた段階」に応じて部分点がもらえます。
難しくても考え続けて、自分がわかるギリギリのところまで粘る。二次予選は、そういう 思考の忍耐力 を磨く良い機会となるでしょう。
問題形式・難易度
二次予選では 1 次予選と大きく変わり、3時間 で 6問 の問題が出題され、簡単な方から順番に A 問題 ~ F 問題、と呼ばれます。 合格のラインは 相対評価 なので毎年異なりますが、例えば2025年二次予選では、1 問 100 点満点で 390点 がボーダーでした。 後半の E 問題、 F 問題はとくに難易度が高く、AtCoder の水色上位〜黄色レベル となっていることもあり、2025年二次予選では満点合格は者は 20 人しかいませんでした。
また、二次予選の問題は一次予選と異なり 計算量 を意識する必要があり、結果が同じプログラムでも「より効率的なプログラム」が必要となるのも特徴の一つです。
各問題の難易度の目安は
- A 問題:配列、stack、queue など基礎的なデータ構造やそれらの応用問題。AtCoderレート 100 レベル
- B 問題:DFS、BFS、DP などの典型問題の知識があり、かつ AtCoder300 ~ 400 レベルの考察力が必要
- C 問題:B 問題までの知識に比べて、bit全探索、順列全探索などの「全探索の知識」が揃っており、かつ AtCoder400 〜 800 レベルの考察力が必要
- D 問題:典型知識は揃っている前提で、AtCoder 1000 〜 1300 レベル
- E 問題:AtCoder 1200 〜 1400 レベル
- F 問題:AtCoder 1600〜2000 レベル
となっています。また二次予選突破のために必要な典型知識を列挙すると、
stack, queue, 多重ループ、二分探索、累積和、動的計画法(DP)、bit全探索、順列全探索、DFS、BFS、優先度付きキュー、map、set
あたりですが、これらのアルゴリズムを幅広く知っているよりも、一つ一つのアルゴリズムについて深く理解し、使いこなせる状態にしておくこと が大切です。 2025年二次予選では、合格のために必要な知識は 多重ループ、二分探索、累積和のみでした 。HaruCoder 生にはこれらを勉強したことがある生徒も複数名いましたが、残念ながら今年は二次予選合格者は出ませんでした。理由は、「知ってはいるが使いこなせていなかった」からです。
例えば「二分探索」について勉強したら、
- これは抽象的には何をしているのか?
- どういう問題に応用できるのか?
- 典型的な使い方は他にあるか?
- 計算量は?
ということを深く追求する必要があります。 深く追求するにはどうすればいいのか?というと、それはやはり演習問題をたくさん解くしかありません。HaruCoder 内で取り組むことももちろん可能ですし、独学の場合は「AtCoder Problems」「JOI過去問」などのサイトを利用すると良いでしょう。
各難易度の参考問題も記載しておくので、興味があればぜひ挑戦してみてください。
- A 問題例:年齢の差 2022年 二次予選 A問題
- B 問題例:カーペット 2021年 二次予選 B問題
- C 問題例:白色光 2 2023年 二次予選 C問題
- D 問題例:親密なシェフ 2024年 二次予選 D問題
- E 問題例:ビ太郎の旅 3 2025年 二次予選 E問題
- F 問題例:船 (Ship) 2025年 二次予選 F問題
本戦について
さて、本戦(2025年からセミファイナルステージという名前に変更されました)まで来ると僕自身経験が浅く、また本戦に挑戦する人はすでに相当な猛者ですので、改めて解説するまでも無いかもしれませんが、書いておきます。
情報オリンピックの世界大会で優勝経験のある E869120 さんの記事 によれば、ここを突破して日本代表選抜の春合宿に参加するためには 上位20〜30人 に入る必要があり、AtCoder黄色相当(AtCoder内で上位1%) の実力が必要との記述があります。これはとんでもない難易度です。問題解決能力だけなら、もはや研究機関や最適化の道で十分に食べていけるでしょう。
また、二次予選まではオンライン上で行われますが、この本戦は東京都内の会場にてオフラインで開催されます。
問題形式・難易度
本戦では二次予選よりさらに時間が伸び、4 時間で 6 問の問題に挑戦します。 各問題は典型的なアルゴリズムを知っているだけでは解けないような問題が多く、また考察力だけでなく実装力が試されるタイプの問題も出題されます。
具体的な難易度とAtCoderレーティングの対応は、ざっくりと
- A問題:緑上位〜水色下位
- B問題:水色上位〜青色下位
- C問題:青色以上
- D問題:黄色以上
- E問題:???
- F問題:???
のようになっています。E 問題、F 問題については一人も解けないこともあるレベルで、僕も「F 問題を教えて!」と言われると困ってしまいます。(もっと精進します...)
本戦の練習では、JOIの過去問を解くのはもちろんのこと、毎週開催されているAtCoderコンテストへの参加 もかなり重要になってきます。
- 「本番」という環境の中でうまく考察を進められるか?
- 限られた時間内に解法を実装できるか?
という、いわば 実践感覚 を身につけておく必要があるからです。
本戦の先
本戦を突破すると、国際情報オリンピックの日本代表を選抜する春合宿に参加できます。 そしてこの合宿で優秀な成績を残すと、世界大会に挑戦する、という流れで進んでいきます。
これ以上の難易度解説は詳細には行いませんが、興味のある方は
- JOI過去問の10点〜12点
- AtCoder Regular Contest 過去問(ARCタグ)
- AtCoder Grand Contest 過去問(AGCタグ)
などに挑戦してみるといいかもしれません。
まとめ
この記事では、情報オリンピックの難易度をステージ別に解説しました。
| ステージ | AtCoder目安 | 特徴 |
|---|---|---|
| 一次予選 | レート100前後 | 絶対評価。基礎力があれば突破できる |
| 二次予選 | レート1000〜1200 | 倍率33倍。「知っている」より「使いこなせる」が鍵 |
| 本戦 | レート2000相当 | 考察力+実装力。オフライン開催 |
| 春合宿〜世界大会 | 日本トップ4人 | 国内最難関 |
一次予選と二次予選、二次予選と本戦の間には大きな壁がありますが、 壁の正体は「知識の量」ではなく「使いこなせるかどうか」 です。
純粋な思考力で限界に挑戦できる競技はそう多くはありません。 ぜひ、その壁を楽しみながら乗り越えていってください。
HaruCoder では、JOI一次予選・二次予選突破を目指す中学生・高校生に向けて、週1回のオンライン授業を提供しています。 「何から勉強すればいいかわからない」「独学では使いこなせるレベルまで上がらない」という方は、ぜひ一度のぞいてみてください。