生成AIと競技プログラミング

こんにちは、土居です。
ここ1年ほど、プロジェクトリーダーを務めるようになったため、自身でコードを書く機会が減ってしまいました。そのため、週に2回程度、久しぶりに競技プログラミングを楽しんでいます。(C++の基本的な書き方すら忘れていた状態でした)
久しぶりにプログラミングに取り組もうと思った際、気になったのは、生成AIの一般化によって何か状況が変化したのではないかという点でした。
私自身は既存の問題を少しずつ解いている程度で、競技に本格的に取り組んでいるわけではありませんが、例えば生成AIに問題文を入力すると簡単に解答が得られてしまうようなことがあれば、競技性が損なわれ、大会が成立しなくなるのではないかと懸念しました。
実際、つい半年ほど前までは途方もないコードが出力されていたようですが、現在は典型的な問題であれば普通に正解コードを提示してくるようです。
生成AIの競技プログラミングへの利用
生成AIの性能向上に伴い、競技の主催者側からも対策ルールが示されています。
・AtCoder生成AI対策ルール - 20241206版
生成AIの使用は原則禁止とされ、以下の用途のみが許可されています。
• 問題文の翻訳
• コード補完ツール(※コード作成のスピード向上やアイデア獲得のための使用は禁止)
• プログラミング言語の変換
いずれも補助的な利用に留め、競技で有利になるような使い方は認められていません。(3つ目のプログラミング言語の変換については、自分の得意な言語よりも高速な言語へ変換するなどの利用が考えられるかもしれません)
また、コンテストでは生成AIを使用すると不正解となる問題を工夫して出題しているらしく、作問者の方々も苦労されているようです。
私の利用方法
私は既存の問題を少しずつ解く程度なので、学習の補助として生成AIを活用しています。誤ったコードと問題文をそのまま入力すると、非常に親切に誤り箇所を指摘してくれます。AtCoderでAC(正解)に辿り着けず困っているときに、よく助けられています。想像以上に正確で、何より処理速度の速さに驚かされます。少し前はこれほど優秀ではなかった気がしますが…。
※以下は、簡単な累積和の問題で誤りがあった際、問題文と誤ったコードをほぼそのまま入力したときの生成AIの回答の一部
まとめ
予想以上に生成AIの競技プログラミングにおける性能は向上しており、高いレベルの競技ではまだ勝敗に大きく影響するものではないようです。しかし、個人としては上手く学習に活かし、もちろんコンテストに出場する際には使用しないようにしたいと思います。