開成学園のコンピューター部が「全国統一プログラミング王決定戦」(主催:日本経済新聞社)に参加しました。

 日本経済新聞社が主催するプログラミングの大会「全国統一プログラミング王決定戦」が行われ、開成学園からコンピューター部員らが参加しました。
 この大会では、幾つか与えられた課題に対して効率良く答えを求める方法を考え、プログラミングを行います。問題に正解すると難易度に応じて得点が得られ、高得点を早く獲得したほうが高い順位になります。予選は2019/11/9(土)の21時~23時にオンラインで行われ、全国から2,847人が参加しました。大学生や社会人が多数を占める中で、3名の開成生が6問中5問を正解し、予選上位200人のみに参加権がある本戦に出場することになりました。
 本戦は2019/12/15(日)に「ベルサール神田」にて行われました。2時間で8問を解く競技で、問題の難易度も予選より上がっています。10位以内に入ると50,000円以上の賞金を得られることもあり激戦でしたが、米田寛峻君(高2)は5問の課題に正解し、9位獲得という快挙を成し遂げました。
 以下、3名の本戦出場者の結果と、本大会で出題された問題の一部です。

本戦出場者と予選・本戦の結果

・米田寛峻君(高2):予選6位、本戦9位
・神尾悠陽君(高1):予選44位、本戦64位
・東谷勇太君(高2):予選56位、本戦123位

※ 予選の順位は参加者2,847人中
※ 本戦の順位は予選を勝ち抜いた200人中

この大会で出題された問題の一例

 全国統一プログラミング王決定戦では、例えば以下のような問題が出題されました。

【予選 問題1 2つの整数の合計】
 1以上1,000,000以下の整数Nが入力されるとき、「Nを1以上の異なる整数2つの和で表す方法がいくつあるか」を2秒以内の実行時間で求め、これを表示するプログラムを作ってください。
 例えば「8」が入力されたとき、「1+7=8」「2+6=8」「3+5=8」の3つの方法があるため、「3」と表示させればよいです。

【本戦 問題2 NIKKEI文字列】
 「NIKKEI」という文字列は、2文字目と6文字目が同じで、3文字目と4文字目が同じです。6~500文字のアルファベットの文字列Sが入力されます。文字列Sを6つの部分に分けたとき、左から2番目の部分と6番目の部分が同じで、左から3番目の部分と4番目の部分が同じとき、「NIKKEI型の分け方」とします。文字列SのNIKKEI 型に分ける方法がいくつあるか、2秒以内の実行時間で求め、これを表示するプログラムを作ってください。
 例えば「aabbccccddbb」と入力されたとき、aab|b|cc|cc|ddb|bなど4つのNIKKEI型の分け方があるため、「4」と表示させればよいです。