競技プログラミングをこれから始めてみようかな、となったときに最初に迷うポイントの一つが「どの言語で参加すべきか」という問題です。この問題を解決する完璧なフローチャートを作成しました。
半分はジョークですが半分は本気です。
ポイントは 特に強いこだわりがなければ C++ にしておくべき という点です。理由はいくつかあります:
- 参加人数が多いので、強い人のACコードを参考にしようと見てみると、だいたいC++
- 競プロ参考書、解説ブログでのデファクトスタンダード
- 競プロをやるうえで便利なライブラリが標準でそろっている
- アルゴリズムが正しいのにTLE1してしまうことがほぼない
図中の注1ですが、あなたの使っている言語だけ想定解法でもTLEで落とされるような問題が出たとしても「よしよし、この言語はここが苦手なんだね。大丈夫、次のコンテストまでには自前のライブラリを整備しておいてあげるから、また次回頑張ろうね」と考えられるよ、くらいを想定してもらえればオッケーです。
ちなみに私は3年間くらい Go で競技プログラミングに参加したあと、とある理由から現在は C++ にスイッチして現在まで C++ で参加しています。C++ にスイッチはしましたが、特にネガティブな理由ではないのでまた Go に戻すかもしれません。 競技プログラミングに参加するうえでは Go にもいくつか気を付けるポイントがあり、それは下記の記事にまとめてありますので興味がある人は読んでみてください。
以上です。
-
TLE(Time Limite Exceeded の略)とは提出したコードに対してジャッジシステムが返す状態(判定結果)の一つで、問題で指定された実行時間以内にプログラムが終了しなかったという意味です。用語集(atcoder.jp)より ↩