ライブバトル:ポルトICPCファイナル

本日 、ポルトガルのポルト市が国際ICPC 2019プログラミングコンテストの決勝戦を開催し、ITMO大学の代表者やロシア、中国、インド、アメリカ、その他の国の大学のチームが参加します。 詳細を説明します。





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分のペナルティが課せられます。





icpcnews / Flickr / CC BY /プーケットでのICPC-2016決勝戦の写真



タスクの例



チャンピオンシップの目的は、チームがアクションと集中力を調整することを必要とします。 さらに、個々の数学的アルゴリズムの知識をテストします。 ICPC 2018の参加者に提供されたタスクの例を次に示します。



印刷会社では、「川」という用語が存在します。これは、単語間のスペースのシーケンスであり、複数行のテキストから形成されます。 川の専門家(現在)が本をリリースしたいと考えています。 彼は、ページ上に等幅フォントで印刷されたときに、最も長い活版印刷の川を「形成」したいと考えています。 参加者は、この条件が満たされるフィールドの幅を決定する必要がありました。



入力で、プログラムは整数n(2≤n≤2 500)を受け取りました。これは、テキスト内の単語の数を決定します。 さらに、テキストが入力されました。1行の単語は1つのスペースで区切られ、80文字を超えることはできません。



出口では、プログラムは最長の「川」が形成されるフィールドの幅と、この川の長さを表示することになっていた。


完全なリストは昨年から遡っ ており、説明付きのソリューションはICPC Webサイトで見つけることができます。 参加者のプログラムが「サブジェクト」されたテストを含むアーカイブもあります



そのため、今日の午後には、チャンピオンシップWebサイトYouTubeチャンネルで 、現場からの生放送が行われます。 ショー前の録画が利用可能になりました。







Habréのブログには他に何がありますか?





All Articles