このようなコンテストの上位に入賞するには、どのような資質、訓練が必要なのだろうか。 「プログラミングコンテストは、アルゴリズムとプログラミングの複合競技だ」と秋葉は説明する。 まず、アルゴリズムを自分で組み立てる能力が必要だ。プログラミングコンテストでは、プログラムに与えるデータの大きさを指定して、制限時間内に解けることを求める。アルゴリズムを工夫しないと計算量が大きくなりすぎ、プログラムが制限時間内に問題を解けない場合も多い。アルゴリズムしだいで計算量が100倍、1万倍といったレベルで差が付くことは、この世界では常識だ。 良いアルゴリズムを自分で組み立てるには、幅広いアルゴリズムの知識、それにある種の数学的センスが必要だ。このアルゴリズムの能力の重要さは、秋葉が高校時代に挑戦した「情報オリンピック」で思い知らされた。 プログラミングの能力も、やはり必要だ。アルゴリズムが組み立てられたとし