【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

言語の注意事項

CC++を使うときは、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
- Zero