Polygon とは、Codeforces の問題作成プラットフォーム
サーバー側で実行をすべてやってもらえて、結果だけ返ってくる
https://polygon.codeforces.com/
これで始まる問題文は主に Polygon で作られる
これは後で変更できる
コンテストページの New Problem から問題枠を作成
デフォルト 1 s / 256 MB なので 2 s / 1 GB に上げる (1 GB より大きい ML を設定できない!)
testlib/checkers がテンプレートとして用意されている。
wcmp がいつもの (whitespace を無視した完全一致)
特殊なジャッジをする場合は、testlib を使った checker をアップロードする。
generator を置くのは面倒なので、直接入力をアップロードしてしまうのが良い。入出力が巨大な場合は testlib を使った generator を置くことを検討しても良い (したことなし)
Add Test → from the files でアップロード
Example を指定し、一番上に持ってくる
アップロードするとコンパイルされて言語が自動的に入る 謎に CTLE することがある 実行が遅い!
(Python ファイルはデフォルトで CPython になるので、PyPy に変更する。)
UCup で適切な TL だと Python の実行は普通 TLE するので、Type を Correct or TLE に変更する。
Tests → Preview Tests で生成された出力を確認できる
Invocations で AC かどうかは確認できるので、慣れたら見なくて良い
CPU が古いので割り算が顕著に遅い (3 倍くらい)
一方 UCup の CPU は AtCoder と同じ性能
LaTeX で問題文を作ることになる
使える LaTeX のパッケージは少ないなので注意:
\usepackage {amsmath}
\usepackage {amssymb}
\usepackage {comment}
\usepackage {epigraph}
\usepackage {expdlist}
\usepackage {graphicx}
\usepackage {multirow}
\usepackage {siunitx}
\usepackage {ulem}
\usepackage {import}
罠 : \lt
, \gt
は存在しない
AtCoder の入力フォーマットを再現するために作った枠
\newcommand{\formatbox}[1]{
\framebox[\textwidth][l]{\begin{tabular}{l}
#1
\end{tabular}}
}
以下の競技プログラミングの問題を自然な英語に翻訳してください。出力はコードブロックに入れてください。数式は $ で囲んだままにしてください。プレースホルダはそのまま残してください。
```
<問題文>
```
```
<問題文>
```
上の Markdown で書かれた問題文を LaTeX に翻訳してください。
出力はコードブロックに入れ、以下の形式で出力してください。
数式は $ で囲んだままにしてください。
```
\section*{Legend}
% 問題文をここに書く
\section*{Input format}
\newcommand{\formatbox}[1]{
\framebox[\textwidth][l]{\begin{tabular}{l}
#1
\end{tabular}}
}
The input is given in the following format:
% 入力形式をここに書く
% ~~~ で囲まれた入出力を表す部分は、代わりに \formatbox{} で囲む
\begin{itemize}
% 制約をここに書く
\end{itemize}
\section*{Output format}
% 出力形式をここに書く
\section*{Note}
% サンプルは取り除き, サンプルの説明をまとめてここに書く
% 何番目の入力例を説明しているか分からなくなるので、`In the first example,` のような文章を追加する
```
Statement の一番下に Statement Resource Files がある
\begin{center}
\includegraphics[width=0.6\textwidth]{fig1-YBEIlM.png}
\end{center}
結局 LaTeX がコンパイルされているだけなので、ソース を見ればいろいろいじれる
\addtolength{\exmpwidinf}{6.1cm}
\addtolength{\exmpwidouf}{-5cm}
問題は git 管理されていて、変更を commit しないと他の人から見ることができない。
未 commit の変更があると赤くなるので注意!
UCup 運営に渡す前に、全問題の Verify 付き Package を作っておく。
Verify のために自動的に Invocation が走る。
https://codeforces.com/blog/entry/10077
Polygon でユーザ codeforces
に権限を与え、Package を生成すれば Gym から問題が import 可能になる
Qingyu さんに連絡して Qingyu さんに権限を与える
https://github.com/verngutz/CFgym-ghost-file-generator/blob/master/DOMjudge-to-CFgym.py を参考に手動で CF Gym 形式のファイルを作りました… (部分点があると全員移すのはきびしい)
あとは Qingyu さんにおまかせ (どういうフォーマットが良いのかは聞いていません)