【TOPSIC PG】ルール・用語
受験ルール
言語
問題を解くためのプログラミング言語はTOPSICのシステムが対応しているものに限ります。以下は対応している言語を表にしたものです。また、TOPSICではC++においてAtCoder Library(AC Library, ACL)が利用可能です。言語ごとのインストール済ライブラリの詳細に関してはこちらをご確認ください。
| 言語名 | コンパイル・インタプリタ / 実行方法 | 
|---|---|
| C++ 20 (gcc 12.2) | 
g++-12 -std=gnu++20 -O2 -DONLINE_JUDGE -DATCODER \ -Wall -Wextra \ -mtune=native -march=native \ -fconstexpr-depth=2147483647 -fconstexpr-loop-limit=2147483647 -fconstexpr-ops-limit=2147483647 \ -I/opt/ac-library -I/opt/boost/gcc/include -L/opt/boost/gcc/lib \ -o a.out Main.cpp \ -lgmpxx -lgmp \ -I/usr/include/eigen3 /a.out  | 
| Go (go 1.20.6) | 
export PATH=$PATH:/opt/go/bin go build -o a.out /a.out  | 
| C# 11.0 (.NET 7.0.7) | 
export DOTNET_EnableWriteXorExecute=0 dotnet publish -c Release -o publish -v q --nologo 1>&2 /publish/Main  | 
| Kotlin (Kotlin/JVM 1.8.20) | 
$HOME/.sdkman/candidates/kotlin/current/bin/kotlinc ./Main.kt -include-runtime -jvm-target 19 -d ./Main.jar usr/lib/jvm/java-19-openjdk-amd64/bin/java -cp ./Main.jar -Xss{memory:mb}M -DONLINE_JUDGE=true MainKt
 | 
| Java (OpenJDK 17) | 
javac Main.java ava -Xss{memory:mb}M -DONLINE_JUDGE=true Main
 | 
| Nim (Nim 1.6.14) | 
export PATH=$HOME/.nimble/bin:$PATH nim cpp -d:release --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --hints:off -o:a.out Main.nim /a.out  | 
| V (V 0.4) | 
v -prod -cc clang -skip-unused -manualfree -prealloc -gc none -no-bounds-checking -o a.out Main.v /a.out  | 
| Zig (Zig 0.10.1) | 
zig build /zig-out/bin/a.out  | 
| JavaScript (Node.js 18.16.1) | 
node --check Main.js && touch ok ode --stack-size={memory:kb} Main.js ONLINE_JUDGE ATCODER
 | 
| JavaScript (Deno 1.35.1) | 
export NO_COLOR=true
export PATH=$PATH:/home/runner/.deno/bin
export DENO_NO_UPDATE_CHECK=1
# キャッシュしつつ、import・構文などをチェック
if deno cache --quiet Main.js > check-output 2>&1 ; then
    touch ok
else
  cat check-output 1>&2
  if grep -q "error sending request for url (http" check-output 2>/dev/null; then
    # ライブラリをダウンロードしようとした場合はヒントを表示
    echo "---" 1>&2
    echo "Tips from the judge system: The only available external libraries are:" 1>&2
    echo "- std@0.194.0" 1>&2
    echo "- npm:mathjs@11.8.2" 1>&2
    echo "Please make sure to specify the version number when importing." 1>&2
  fi
fi
eno run --allow-all --quiet --no-prompt --v8-flags=--stack-size={memory:kb} Main.js ONLINE_JUDGE ATCODER
 | 
| R (GNU R 4.2.1) | 
Rscript Main.R < /dev/null &> /dev/null
Rscript -e "parse('Main.R')" && touch a.out
script Main.R  | 
| D (DMD 2.104.0) | 
export DFLAGS="-O -release -boundscheck=off" dub build --skip-registry=all --nodeps /judge  | 
| D (LDC 1.32.2) | 
dub build --skip-registry=all --nodeps --build=release-nobounds /judge  | 
| Swift (swift 5.8.1) | 
export PATH=/usr/local/swift/usr/bin:$PATH swift build -Xswiftc -O -Xlinker -lm -c release 1>&2 /.build/release/Main  | 
| Dart (Dart 3.0.5) | 
dart compile exe Main.dart -o a.out /a.out  | 
| PHP (php 8.2.8) | 
# チェックで問題が無かった場合OKファイルを生成 php -l Main.php && touch OK hp Main.php  | 
| C (gcc 12.2.0) | 
gcc-12 -std=gnu2x -O2 -DONLINE_JUDGE -DATCODER -o a.out Main.c -lm /a.out  | 
| Ruby (ruby 3.2.2) | 
ruby -c Main.rb && touch syntax_ok uby --jit --yjit-exec-mem-size=128 Main.rb  | 
| Crystal (Crystal 1.9.1) | 
cd main && shards build --release --no-debug --no-color -Donline_judge 1>&2 /main/bin/main  | 
| F# 7.0 (.NET 7.0.7) | 
export DOTNET_EnableWriteXorExecute=0 dotnet publish -c Release -o publish -v q --nologo 1>&2 /publish/Main  | 
| Julia (Julia 1.9.2) | 
export PATH=$PATH:/home/runner/.juliaup/bin julia -e "Meta.parse(\"begin \" * read(\"Main.jl\",String) * \" end\")" && touch ok julia Main.jl ONLINE_JUDGE 2> /dev/null ulia Main.jl  | 
| Bash (bash 5.2.2) | 
bash -n Main.bash || rm Main.bash ash Main.bash  | 
| Text (cat 8.32) | 
at Main.text  | 
| Haskell (GHC 9.4.5) | 
cd submission source ~/.ghcup/env cabal v2-build --offline && cp $(cabal list-bin main) ../ /main  | 
| Fortran (gfortran 12.2) | 
export FFLAGS="-O2 -std=f2018" cmake -B build -DCMAKE_BUILD_TYPE=NoConfig cmake --build build /build/main  | 
| Lua (LuaJIT 2.1.0-beta3) | 
luajit -O3 -b Main.lua luac.out uajit -O3 luac.out  | 
| C++ 23 (gcc 12.2) | 
g++-12 -std=gnu++2b -O2 -DONLINE_JUDGE -DATCODER \ -Wall -Wextra \ -mtune=native -march=native \ -fconstexpr-depth=2147483647 -fconstexpr-loop-limit=2147483647 -fconstexpr-ops-limit=2147483647 \ -I/opt/ac-library -I/opt/boost/gcc/include -L/opt/boost/gcc/lib \ -o a.out Main.cpp \ -lgmpxx -lgmp \ -I/usr/include/eigen3 /a.out  | 
| Common Lisp (SBCL 2.3.6) | 
export SBCL_HOME=/usr/local/lib/sbcl ./sbcl --noinform --eval '(compile-file "Main.lisp")' --quit if [ -f Main.fasl ]; then chmod +x Main.fasl fi /Main.fasl  | 
| COBOL (Free) (GnuCOBOL 3.1.2) | 
cobc -x -free -O2 -o ./a.out ./Main.cbl /a.out  | 
| C++ 23 (Clang 16.0.6) | 
clang++ -std=c++2b -Wall -Wextra -O2 -DONLINE_JUDGE -DATCODER -mtune=native -march=native -fconstexpr-depth=2147483647 -fconstexpr-steps=2147483647 -I/opt/boost/clang/include -L/opt/boost/clang/lib -I/opt/ac-library -I/usr/include/eigen3 -fuse-ld=lld -o ./a.out ./Main.cpp /a.out  | 
| Zsh (Zsh 5.9) | 
zsh -n Main.zsh || rm Main.zsh sh Main.zsh  | 
| SageMath (SageMath 9.5) | 
sage --preparse Main.sage && python3 -m py_compile Main.sage.py || rm Main.sage.py ython3 Main.sage.py  | 
| Sed (GNU sed 4.8) | 
ed -f Main.sed  | 
| bc (bc 1.07.1) | 
c --mathlib Main.bc  | 
| dc (dc 1.07.1) | 
c -f Main.dc  | 
| Perl (perl 5.34) | 
perl -c Main.pl && touch ok erl Main.pl  | 
| AWK (GNU Awk 5.0.1) | 
wk -f Main.awk  | 
| なでしこ (cnako3 3.4.20) | 
cnako3 -c Main.nako3 ode --stack-size={memory:kb} Main.mjs
 | 
| Assembly x64 (NASM 2.15.05) | 
nasm -f elf64 Main.asm && gcc -o a.out Main.o -lm /a.out  | 
| Pascal (fpc 3.2.2) | 
fpc -O2 -Sd -Sh -v0z -oa.out Main.p /a.out  | 
| C# 11.0 AOT (.NET 7.0.7) | 
export DOTNET_EnableWriteXorExecute=0 dotnet publish -c Release -o publish -v q --nologo 1>&2 /publish/Main  | 
| Lua (Lua 5.4.6) | 
export PATH=$PATH:/judge/lua-5.4.6/src luac -o luac.out Main.lua ua luac.out  | 
| Prolog (SWI-Prolog 9.0.4) | 
swipl -O -g main -o a.out -c Main.pl # source 内で main :- /a.out  | 
| PowerShell (PowerShell 7.3.1) | 
wsh ./Main.ps1  | 
| Scheme (Gauche 0.9.12) | 
osh ./Main.scm  | 
| Scala 3.3.0 (Scala Native 0.4.14) | 
cd main && sbt "set offline := true" nativeLink 1>&2 /main/target/scala-3.3.0/main-out  | 
| Visual Basic 16.9 (.NET 7.0.7) | 
export DOTNET_EnableWriteXorExecute=0 dotnet publish -c Release -o publish -v q --nologo 1>&2 /publish/Main  | 
| Forth (gforth 0.7.3) | 
forth-fast Main.fs -e bye  | 
| Clojure (babashka 1.3.181) | 
b Main.clj  | 
| Erlang (Erlang 26.0.2) | 
export PATH=/home/runner/.asdf/installs/erlang/26.0.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin erlc Main.erl 1>&2 rl -noshell -run Main main run  | 
| TypeScript 5.1 (Deno 1.35.1) | 
export NO_COLOR=true
export DENO_NO_UPDATE_CHECK=1
export PATH=$PATH:/home/runner/.deno/bin
# キャッシュしつつ、import・型・構文などをチェック
if deno cache --quiet --check Main.ts > check-output 2>&1 ; then
    touch ok
else
  cat check-output 1>&2
  if grep -q "error sending request for url (http" check-output 2>/dev/null; then
    # ライブラリをダウンロードしようとした場合はヒントを表示
    echo "---" 1>&2
    echo "Tips from the judge system: The only available external libraries are:" 1>&2
    echo "- std@0.194.0" 1>&2
    echo "- npm:tstl@2.5.13" 1>&2
    echo "- npm:mathjs@11.8.2" 1>&2
    echo "Please make sure to specify the version number when importing." 1>&2
  fi
fi
eno run --allow-all --quiet --no-prompt --v8-flags=--stack-size={memory:kb} Main.ts ONLINE_JUDGE ATCODER
 | 
| C++ 17 (gcc 12.2) | 
g++ -std=gnu++17 -Wall -Wextra -O2 -DONLINE_JUDGE -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -I/opt/ac-library -o a.out Main.cpp /a.out  | 
| Rust (rustc 1.70.0) | 
cargo build --release --quiet --offline /target/release/main  | 
| Python (CPython 3.11.4) | 
python3.11 -m py_compile Main.py python3.11 Main.py ONLINE_JUDGE 2> /dev/null ython3.11 Main.py  | 
| Scala (Dotty 3.3.0) | 
scala-cli --power package --bloop-jvm system --jvm system -S 3.3.0 Main.scala -o Main --assembly 2>&1 | ansifilter 1>&2 /Main  | 
| Koka (koka 2.4.0) | 
koka -O2 -o a.out Main.kk 1>&2 if [ -f a.out ]; then chmod +x a.out; fi /a.out  | 
| TypeScript 5.1 (Node.js 18.16.1) | 
tsc Main.ts --target ESNext --moduleResolution node --module commonjs --noEmitOnError --pretty true | ansifilter 1>&2 ode --stack-size={memory:kb} Main.js ONLINE_JUDGE ATCODER
 | 
| OCaml (ocamlopt 5.0.0) | 
eval $(opam env) ocamlfind ocamlopt -O2 -o a.out \ main.ml -linkpkg -thread \ -package str,num,threads,containers,core,iter,batteries /a.out  | 
| Raku (Rakudo 2023.06) | 
export PATH=/opt/rakudo-pkg/bin:$PATH export RAKUDO_ERROR_COLOR=0 raku -c Main.p6 && touch ok aku Main.p6  | 
| Vim (vim 9.0.0242) | 
ash -c cat - > /tmp/out; TERM=dumb vim -N -u NONE -i NONE -s Main.vim /tmp/out > /dev/null 2>&1; cat /tmp/out  | 
| Emacs Lisp (Native Compile) (GNU Emacs 28.2) | 
emacs --batch -f package-initialize --eval '(native-compile "Main.el" (expand-file-name "Main.eln"))' macs --batch -f package-initialize -l Main.eln  | 
| Python (Mambaforge / CPython 3.10.10) | 
~/mambaforge/bin/python3.10 Main.py ONLINE_JUDGE 2> /dev/null home/runner/mambaforge/bin/python3.10 Main.py  | 
| Clojure (clojure 1.11.1) | 
lojure -J-Xss{memory:mb}M -M Main.clj
 | 
| プロデル (mono版プロデル 1.9.1182) | 
mono produire-mono/rdrc.exe /mono /console produire-mono/Main.rdr > compile-out result=$(tail -1 compile-out) if [ "$result" = "失敗しました。" ]; then rm produire-mono/Main.exe cat compile-out 1>&2 fi ono produire-mono/Main.exe  | 
| ECLiPSe (ECLiPSe 7.1_13) | 
export PATH=$PATH:/judge/eclipse/bin/x86_64_linux
echo "compile('Main.ecl', [output: eco, debug: off])" | eclipse -f Main.ecl
clipse -f Main.eco -e main  | 
| Nibbles (literate form) (nibbles 1.01) | 
./nibbles -hs Main.nbl && ~/.ghcup/bin/ghcup --offline run --quick --ghc 8.10.7 -- ghc -O2 out.hs /out  | 
| Ada (GNAT 12.2) | 
gnat make -O2 -o a.out Main.adb /a.out  | 
| jq (jq 1.6) | 
q -MrRs -f Main.jq  | 
| Cyber (Cyber v0.2-Latest) | 
if cyber compile Main.cy > compile-out 2>&1; then touch ok else cat compile-out 1>&2 fi yber Main.cy  | 
| Carp (Carp 0.5.5) | 
export CARP_DIR=/opt/carp-v0.5.5-x86_64-linux carp -b --optimize Main.carp 1>&2 /out/Untitled  | 
| C++ 17 (Clang 16.0.6) | 
clang++ -std=c++17 -Wall -Wextra -O2 -DONLINE_JUDGE -DATCODER -mtune=native -march=native -fconstexpr-depth=2147483647 -fconstexpr-steps=2147483647 -I/opt/boost/clang/include -L/opt/boost/clang/lib -I/opt/ac-library -I/usr/include/eigen3 -fuse-ld=lld -o ./a.out ./Main.cpp /a.out  | 
| C++ 20 (Clang 16.0.6) | 
clang++ -std=c++20 -Wall -Wextra -O2 -DONLINE_JUDGE -DATCODER -mtune=native -march=native -fconstexpr-depth=2147483647 -fconstexpr-steps=2147483647 -I/opt/boost/clang/include -L/opt/boost/clang/lib -I/opt/ac-library -I/usr/include/eigen3 -fuse-ld=lld -o ./a.out ./Main.cpp /a.out  | 
| LLVM IR (Clang 16.0.6) | 
clang-16 -O2 -o ./a.out ./Main.ll /a.out  | 
| Emacs Lisp (Byte Compile) (GNU Emacs 28.2) | 
emacs --batch -f package-initialize -f batch-byte-compile Main.el macs --batch -f package-initialize -l Main.elc  | 
| Factor (Factor 0.98) | 
opt/factor/factor Main.factor  | 
| D (GDC 12.2) | 
dub build --skip-registry=all --nodeps --build=release-nobounds /judge  | 
| Python (PyPy 3.10-v7.3.12) | 
pypy3 -m py_compile Main.py pypy3 Main.py ONLINE_JUDGE 2> /dev/null ypy3 Main.py  | 
| ><> (fishr 0.1.0) | 
ishr Main.fish  | 
| ReasonML (reason 3.9.0) | 
cd main eval $(opam env) dune build --release /main/_build/default/bin/main.exe  | 
| Python (Cython 0.29.34) | 
python3.11 -c "from Cython.Build import cythonize;from Cython.Compiler import Options;Options.embed='main';cythonize('Main.pyx', language='c++', compiler_directives={'language_level':'3'})"
g++ -Wno-deprecated-declarations -O2 -fPIC -I/usr/local/include/python3.11 -I$HOME/.local/lib/python3.11/site-packages/numpy/core/include -o a.out Main.cpp -lpython3.11
/a.out  | 
| Octave (GNU Octave 8.2.0) | 
octave -W --eval 'disp("Hello, world!")'
ctave -W Main.m  | 
| Haxe (JVM) (Haxe 4.3.1) | 
export PATH=/opt/haxe_20230428195743_964c84c:$PATH haxe -D analyzer-optimize --jvm Main.jar --main Main ava -jar Main.jar  | 
| Elixir (Elixir 1.15.2) | 
export PATH=/home/runner/.asdf/installs/erlang/26.0.2/bin:/opt/elixir/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin mix compile ix run -e Main.main  | 
| Mercury (Mercury 22.01.6) | 
mmc -o a.out -O 5 main /a.out  | 
| Seed7 (Seed7 3.2.1) | 
s7c -O2 -oc3 Main.sd7 1>&2 /Main  | 
| Emacs Lisp (No Compile) (GNU Emacs 28.2) | 
macs --batch -f package-initialize -l Main.el  | 
| Unison (Unison M5b) | 
sh -c "echo 'load main.u'; sleep 5 ; echo 'add'" | /opt/ucm/ucm > compile-out echo 'compile main main' | /opt/ucm/ucm if [ ! -f main.uc ]; then cat compile-out | ansifilter 1>&2 fi opt/ucm/ucm run.compiled main.uc  | 
| COBOL (GnuCOBOL(Fixed) 3.1.2) | 
cobc -x -O2 -o ./a.out ./Main.cbl /a.out  | 
言語の注意事項
CやC++を使うときは、main関数の型をintで指定し、return 0;してください。Javaを使うときは、クラス名をMainにしてください。mainではコンパイルエラーになります。
提出情報の「状態」について
ユーザが提出したプログラムはジャッジシステムによって評価されます。以下でシステムが返すステータス(状態)について説明します。下記は全て誤答となります。
| 表記 | ステータス | 説明 | 
|---|---|---|
| CE | Compilation Error | 提出されたプログラムのコンパイルに失敗しました。 | 
| MLE | Memory Limit Exceeded | 問題で指定されたメモリ制限を超えています。 | 
| TLE | Time Limit Exceeded | 問題で指定された実行時間以内にプログラムが終了しませんでした。 | 
| RE | Runtime Error | プログラムの実行中にエラーが発生しました。コンパイル時に検知できなかったエラーがあります。スタックオーバーフロー、ゼロ除算などが原因です。 | 
| OLE | Output Limit Exceeded | 問題で指定された制限を超えるサイズの出力を行いました。 | 
| QLE | Query Limit Exceeded | 問題で指定された制限を超えるクエリを行いました。 | 
| NG | No Good | 内部のエラー、つまりジャッジシステムのエラーです。 | 
| IE | Internal Error | 内部のエラー、つまりジャッジシステムのエラーです。 | 
| WA | Wrong Answer | 誤答です。提出したプログラムの出力は正しくありません。 | 
ACが唯一の正解です。
| 表記 | ステータス | 説明 | 
|---|---|---|
| AC | Accepted | 正答です。運営が用意したテストを全てパスし、正しいプログラムであると判定されました。 | 
また、誤答ではありませんが、以下のステータスがあります。
| 表記 | ステータス | 説明 | 
|---|---|---|
| JG | Judging | 提出したプログラムのジャッジ中の状態です。 | 
| WJ | Waiting for Judging) | 提出したプログラムはジャッジを待っている状態です。 | 
問題にミスがあった場合など、リジャッジ(再ジャッジ)が行われることがあり、以下のステータスになります。
| 表記 | ステータス | 説明 | 
|---|---|---|
| WR | Waiting for Re-judging | 再ジャッジを待っている状態です。 | 
開発環境
開発環境、エディタはお好きなものをご利用ください。
TOPSICグレードについて
受験者のレベルに応じて、7段階のグレードが付与されます。
※提出方法が「全体で1回」となっているイベントの受験結果が集計対象となります。
| 各グレードの想定割合 | TOPSICグレード | シンボル名 | シンボル | 
|---|---|---|---|
| 上位 1% | Ⅶ | Diamond | 
 
 | 
| 上位 5% | Ⅵ | Ruby | 
 
 | 
| 上位 10% | Ⅴ | Sapphire | 
 
 | 
| 上位 30% | Ⅳ | Emerald | 
 
 | 
| 上位 50% | Ⅲ | Gold | 
 
 | 
| 上位 70% | Ⅱ | Silver | 
 
 | 
| 上位 90% | Ⅰ | Bronze | 
 
 | 
| - | 0 | Zero | 
 
 | 
    グレードは、新しくイベントを受験した日の夜間に集計されます。そのため、受験結果がグレードに反映されるのは、受験日の翌日以降になります。
    1日に複数のイベントを受験した場合でも、グレードの取得は1日1回までです。同日に複数のイベントを受験すると、その日のグレードとしてまとめて集計されます。
    グレード集計処理の対象は、集計日から過去1年間分の受験データになります。受験ステータスが「採点済」でないものは対象外となりますのでご注意ください。