![](https://habrastorage.org/webt/xx/c8/ib/xxc8ibah8tyzdzdxbigres7zgra.jpeg)
icpcnews / Flickr / CC BY /プーケットでのICPC-2016決勝戦の写真
ICPCとは何ですか?
ICPCは、国際的な学生プログラミング競技です。 彼らは40年以上にわたって開催されています-最初の決勝戦は 1977年に開催されました。 選択はいくつかの段階で実行されます。 大学は地域(ヨーロッパ、アジア、アフリカ、アメリカなど)ごとに分類されています。 それらのそれぞれで、中間段階が配置され、特に北ユーラシアの準決勝が私たちの大学で開催されました 。 地域のステージの勝者は決勝に参加します。
ICPCでは、1台のコンピューター(インターネットに接続されていない)を使用する3人の参加者のチームが、多くの問題を解決するために招待されています。 したがって、プログラミングスキルに加えて、チームワークスキルもテストされます。
ITMO大学チームはICPCのトップ賞を7回受賞しています。 これは何年も保持されている絶対的な記録です。 ICPC 2019カップの戦いでは、世界中の135チームが衝突します。 今年ITMO大学は、 イリヤ・ポドゥレレニフ 、 スタニスラフ・ナウモフ 、 ローマ・コロブコフに代表されています。
決勝戦はどうですか
競技中、チームは 3 台のコンピューターを1台受け取ります。 Ubuntu 18.04で動作し、vi / vim、gvim、emacs、gedit、geany、kateのエディターがプリインストールされています。 Python、Kotlin、Java、またはC ++でプログラムを作成できます。
チームが問題を解決すると、テストサーバーに送信され、コードが評価されます。 参加者は、マシンが実行するテストの種類を知りません。 それらすべてが成功した場合、チームは賞品ポイントを受け取ります。 そうでない場合、エラーが生成され、コードを調整するために生徒が送信されます。
ICPCの規則に従って、ほとんどのタスクを解決したチームが勝ちます。 そのようなチームが複数ある場合、勝者は最も少ないペナルティ時間によって決定されます。 参加者は、完了したタスクごとにペナルティ分を受け取ります。 分数は、競争の開始からテストサーバーによるタスクの受け入れまでの時間に等しくなります。 チームが解決策を見つけた場合、不合格になるたびに20分のペナルティが課せられます。
![](https://habrastorage.org/webt/w7/gu/hc/w7guhcenhl4bfhpmnqvslf1uckw.jpeg)
icpcnews / Flickr / CC BY /プーケットでのICPC-2016決勝戦の写真
タスクの例
チャンピオンシップの目的は、チームがアクションと集中力を調整することを必要とします。 さらに、個々の数学的アルゴリズムの知識をテストします。 ICPC 2018の参加者に提供されたタスクの例を次に示します。
印刷会社では、「川」という用語が存在します。これは、単語間のスペースのシーケンスであり、複数行のテキストから形成されます。 川の専門家(現在)が本をリリースしたいと考えています。 彼は、ページ上に等幅フォントで印刷されたときに、最も長い活版印刷の川を「形成」したいと考えています。 参加者は、この条件が満たされるフィールドの幅を決定する必要がありました。
入力で、プログラムは整数n(2≤n≤2 500)を受け取りました。これは、テキスト内の単語の数を決定します。 さらに、テキストが入力されました。1行の単語は1つのスペースで区切られ、80文字を超えることはできません。
出口では、プログラムは最長の「川」が形成されるフィールドの幅と、この川の長さを表示することになっていた。
完全なリストは昨年から遡っ ており、説明付きのソリューションはICPC Webサイトで見つけることができます。 参加者のプログラムが「サブジェクト」されたテストを含むアーカイブもあります 。
そのため、今日の午後には、チャンピオンシップWebサイトとYouTubeチャンネルで 、現場からの生放送が行われます。 ショー前の録画が利用可能になりました。