Language Test 202001

Can Participate: All Rated Range: - Penalty: None

Welcome to Language Test!

コンテストについて

このコンテストは、言語のアップデートテスト用コンテストです
こちらのスプレッドシートにて募集を行っていた各言語のバージョンアップならびに新規追加した言語のテストを行うためのコンテストです。

コンテストの流れ

コンテストの流れは、以下のようになります。
  1. 問題ボタンから好きな問題を1問開き、解き方を考えます。
  2. 解き方が思いついたら、ソースコードを書きます。思いつかない場合は、他の問題を見ても問題ありません。
  3. 正しいソースコードが書けたと思ったら、解答ボタンを選択し、問題及び言語を選択し、ソースコードを貼り付け、提出します。
  4. 解答ボタンより、自分の解答を確認すると、ソースコードに対するジャッジ結果が表示されます。ACと表示されれば正解、それ以外は不正解となります。なお、WJと表示されている場合は、ジャッジ待ちの状態ですので、定期的に更新ボタンを押しながら、暫くお待ちください。
  5. 正解だった場合は、次の問題へ挑戦しましょう。不正解だった場合は、また同じ問題に挑戦しても、別の問題を解いてみても構いません。
  6. コンテストが終了すると、結果に応じて、順位表にて自分の順位が確認閲覧出来ます。なお、コンテスト中でも、途中経過を確認することは可能です。

メニューについて

なお、上メニューバーの各ボタンの機能は、以下の通りです。
  • トップ: 現在閲覧中のページです。
  • 問題: コンテストの問題の閲覧ができます。
  • 提出: コンテストの問題に対する、解答ソースコードを提出することが出来ます。
  • 質問: コンテスト全体、および各問題に対して、コンテスト中に質問し、その回答を閲覧することが出来ます。
  • 解答: 今までに自分が提出した解答を閲覧することができます。また、コンテスト終了後には他の参加者の解答状況を閲覧することが出来ます。
  • 順位表: 現在のコンテストの順位表が閲覧できます。

実行環境

更新履歴

  • 2021/07/20
  • 2020/10/07
  • 2020/04/12
    • 異常終了時(例えばC/C++でのassertなど)にREにならない問題を修正しました
  • 2020/04/05
    • Python (3.8.2)においてコンパイルコマンドが間違っていた問題を修正しました
      • 実行環境上における設定ミスです。スプレッドシートおよび下記表に修正はありません。
  • 2020/04/01
    • ジャッジ環境を微修正
    • 実行環境再構築
      • 全言語のバージョンアップ
      • ライブラリもバージョンアップ
    • 一部言語においてコンパイルコマンド/実行コマンド変更
  • 2020/03/29
    • TLE発生時に正常に処理が終了しない問題を修正
    • コンパイルエラーおよびコードテストの標準出力/標準エラー出力で表示される量を増やしました(約1024byte→約2048byte)
  • 2020/03/27
    • ジャッジ環境を大きく変更
      • これにより全体的に掛かっていた実行時間のオーバーヘッド分が削減され現行ジャッジと遜色ない程度にまでなったかと思います
    • 実行環境を再構築しました
      • これによりいくつかの言語がバージョンアップしています
        • Go: 1.113.7 => 1.14.1
        • Rust: 1.41.0 => 1.42.0
      • 提出などの表記上のバージョンは更新していません
      • 後ほど再度実行環境を構築し直すのでそのときに改めて表示も含めて修正を行います
  • 2020/03/03
    • ジャッジ環境を少し修正
  • 2020/02/27
    • Octaveが動作するように修正
    • ジャッジ環境を微修正
    • Rakuが動作するように修正
    • Racketのコンパイルコマンドおよび実行コマンドを変更
    • Swiftのパスが通ってなかったのを修正
    • Adaがそもそもインストールされていなかった問題を修正しました。。。
    • Cythonのファイル保存時の拡張子を.pyから.pyxに変更しました
  • 2020/02/25
    • コンパイルコマンドを微修正、これにより以下の言語のコンパイルエラーが表示されるようになりました
      • Erlang
      • Elixir
    • Nimのコンパイルコマンドを微修正
    • L - Interactive Sortingにおいて一部の言語が正常にジャッジされない問題が修正されました
    • Common Lispの実行コマンドを修正
  • 2020/02/21
    • 提出されたコードの改行コードを\nで統一させました
      • bcが改行コードを\r\nを受け付けずにエラーとなっていた問題が解決されました
    • Dartが動作するように環境を修正
  • 2020/02/20
    • コードテストにおいて一部言語が正常に動作していなかった問題を修正
  • 2020/02/19
    • コードテストにおいて出力が多い場合に正常に終了しない問題を修正
    • dotnetコマンドを使う以下の言語が正常に動作していなかった問題を修正
      • C# (.NET Core 3.1.101)
      • F# (.NET Core 3.1.101)
      • Visual Basic (.NET Core 3.1.101)
    • Clojureの実行コマンドを修正
  • 2020/02/13
    • スタックサイズの制約が間違っていた問題を修正
      • 単位を間違っていたことにより想定よりも大幅に小さい制約となっておりました。この修正によりいくつかの問題が解決したと思います(Crystalでコンパイルができなかった問題がこれで解決しました)
    • Kotlinの実行コマンドを修正
    • M - モンスターテイマーが正常にジャッジされるようになりました
  • 2020/02/05
    • Scalaのコンパイルコマンドを修正
  • 2020/02/03
    • 環境変数追加
      • これによってJavaにおいてASCII以外の文字が入っているとエラーになる問題などが解決したはずです
  • 2020/01/31
    • 公開

現時点で判明している問題

  • Unlambda (2.0.0)eが動かないとの報告が上がっています
    • AtCoderでは基本的にスプレッドシートの通りにインストールしています。同じ手順でローカルにインストールした環境では発生しないにも関わらず、AtCoder環境で不具合が起こるようであれば再度質問タブから連絡をください。
    • これは正式回答ではないですが、実装を少し読んだ感じ実装側に問題があるように思えました
  • PHP/Perl/Raku/Rubyなどはコンパイル時のシンタックスチェックエラーが発生してもそのまま実行を行います(これは今まで通り仕様です)
    • 2020/04/12 Scheme (Gauche 0.9.9)でのコンパイルエラー時も同様に実行されます。これはスプレッドシートのobject fileの欄が空であるためです
  • いくつかの言語においてCEとの判定となり、コンパイルエラーが何も表示されない現象が発生しています
    • 2020/03/03 一通りすべての言語でジャッジが動くようになったと思います
  • JavaにおいてASCII以外の文字が入っているとエラーになる問題があります
    • 2020/02/03 修正済み
  • M - モンスターテイマーは現時点ではジャッジが正常に行えずWJの状態となっております
    • 2020/02/13 修正済み
  • RubyでRUBY_THREAD_VM_STACK_SIZE=268435456が指定されていましたが起動直後に終了する問題が発生したため現在は指定なしで実行を行なっています
    • 2020/04/01 ruby 2.7.1で修正されたことに伴い実行時オプションに追加しました
  • Haxe:js、Haxe:Java両方とも提出がないため検証が不可能となっています
    • 2020/03/03 正常に動作していることを確認
  • Objective-Cが正常動作していません

コンパイラオプション/実行時オプション/ライブラリ

下の表が見づらい場合はこちらのスプレッドシートの最終版を確認してください
言語実装バージョンコンパイルコマンド実行コマンドインストール済みライブラリ
Cgcc9.2.1gcc -std=gnu11 -O2 -DONLINE_JUDGE -o {dirname}/a.out {dirname}/{basename} -lm{dirname}/a.out
Clang10.0.0clang -std=c11 -O2 -DONLINE_JUDGE -o {dirname}/a.out {dirname}/{basename} -lm{dirname}/a.out
C++gcc9.2.1g++ -std=gnu++17 -Wall -Wextra -O2 -DONLINE_JUDGE -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -I/opt/ac-library -o {dirname}/a.out {dirname}/{basename}{dirname}/a.outAtCoder Library v1.4, Boost (1.72.0)
Clang10.0.0clang++ -std=c++17 -stdlib=libc++ -Wall -O2 -DNDEBUG -DONLINE_JUDGE -I/opt/boost/clang/include -L/opt/boost/clang/lib -I/opt/ac-library -o {dirname}/a.out {dirname}/{basename}{dirname}/a.outAtCoder Library v1.4, Boost (1.72.0)
JavaOpenJDK11.0.6/usr/lib/jvm/java-11-openjdk-amd64/bin/javac {dirname}/{basename}/usr/lib/jvm/java-11-openjdk-amd64/bin/java -Xss{stack_size:mb}M {filename}
1.8.0/usr/lib/jvm/java-8-openjdk-amd64/bin/javac {dirname}/{basename}/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xss{stack_size:mb}M {filename}
PythonCPython3.8.2python3.8 {dirname}/{basename} ONLINE_JUDGE 2>/dev/nullpython3.8 {dirname}/{basename}numba, numpy, scipy, scikit-learn, networkx
PyPy7.3.0pypy {dirname}/{basename}
PyPy37.3.0pypy3 {dirname}/{basename}
Cython0.29.16cython -3 --embed {dirname}/{basename}; gcc -O2 -fPIC -I/usr/include/python3.8 -I/usr/local/lib/python3.8/dist-packages/numpy/core/include -o {dirname}/a.out {dirname}/{filename}.c -lpython3.8{dirname}/a.out
ShellBash5.0.11bash {dirname}/{basename}
dash0.5.8sh {dirname}/{basename}
zsh5.4.2zsh {dirname}/{basename}
AdaGNAT9.2.1gnat-9 make -O3 -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
AwkGNU Awk4.1.4awk -f {dirname}/{filename}
bcbc1.07.1bc --mathlib {dirname}/{basename}
Brainfucka Brainfuck interpreter20041219bf -c999999999 {dirname}/{basename}
C#.NET Core3.1.201dotnet publish {dirname}/{filename} -c Release -r ubuntu.18.04-x64 -p:PublishReadyToRun=true -o {dirname} -v q --nologo 1>&2{dirname}/{filename} System.Runtime.CompilerServices.Unsafe (4.7.0)
Mono (mcs)6.8.0.105mcs -warn:0 -o+ -unsafe -r:System.Numerics -langversion:latest {dirname}/{basename} -out:{dirname}/{filename}.exemono {dirname}/{filename}.exe
Mono (csc)3.5.0csc -warn:0 -o+ -unsafe -r:System.Numerics.dll -langversion:latest {dirname}/{basename} -out:{dirname}/{filename}.exemono {dirname}/{filename}.exe
ClojureClojure1.10.1.536clojure -J-Xss{stack_size:mb}M {dirname}/{basename}
COBOLOpenCOBOL (Fixed)1.1.0cobc -x -O2 -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
OpenCOBOL (Free)1.1.0cobc -x -free -O2 -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
Common LispSBCL2.0.3sbcl --noinform --eval "(compile-file \"{dirname}/{filename}\")" --quitsbcl --script {dirname}/{filename}.fasl
CrystalCrystal0.33.0crystal build --release --no-debug --no-color -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
DDMD2.091.0dmd -wi -m64 -O -release -inline -boundscheck=off -of={dirname}/a.out `dub list | head -n-1 | tail -n+3 | awk '{print "-I" $3 "source"}' | xargs` {dirname}/{basename}{dirname}/a.outmir
GDC9.2.1gdc -O2 -frelease -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
LDC1.20.1ldc2 -O -release -of {dirname}/a.out {dirname}/{basename}{dirname}/a.out
DartDart2.7.2dart2native {dirname}/{basename} -o {dirname}/a.out{dirname}/a.out
dcdc1.4.1dc -f {dirname}/{basename}
ErlangErlang22.3erlc {basename} 1>&2erl -noshell -run {filename} main run erlang halt
ElixirElixir1.10.2elixirc {dirname}/{basename} -o {dirname}elixir -pa {dirname} -e {filename}.main
F#.NET Core3.1.201dotnet publish {dirname}/{filename} -c Release -r ubuntu.18.04-x64 -o {dirname} -v q --nologo 1>&2{dirname}/{filename}
Mono10.2.3fsharpc -O -o {dirname}/a.exe {dirname}/{basename}mono {dirname}/a.exe
Forthgforth0.7.3gforth-fast {dirname}/{basename} -e bye
FortranGNU Fortran9.2.1gfortran -O2 -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
GoGo1.14.1go build -buildmode=exe -o {dirname}/a.out {dirname}/{basename}{dirname}/a.outhttps://github.com/gonum/gonum https://github.com/emirpasic/gods
HaskellGHC8.8.3ghc -o a.out -O2 {dirname}/{filename}{dirname}/a.outQuickCheck-2.13.2 array-0.5.4.0 attoparsec-0.13.2.3 bytestring-0.10.10.0 containers-0.6.2.1 deepseq-1.4.4.0 extra-1.7.1 fgl-5.7.0.2 hashable-1.3.0.0 heaps-0.3.6.1 integer-logarithms-1.0.3 lens-4.19.1 massiv-0.5.1.0 mono-traversable-1.0.15.1 mtl-2.2.2 mutable-containers-0.3.4 mwc-random-0.14.0.0 parallel-3.2.2.0 parsec-3.1.14.0 primitive-0.7.0.1 psqueues-0.2.7.2 random-1.1 reflection-2.1.5 repa-3.4.1.4 template-haskell-2.15.0.0 text-1.2.4.0 tf-random-0.5 transformers-0.5.6.2 unboxing-vector-0.1.1.0 unordered-containers-0.2.10.0 utility-ht-0.0.15 vector-0.12.1.2 vector-algorithms-0.8.0.3 vector-th-unbox-0.2.1.7
HaxeHaxe (hxnodejs)4.0.5haxe -cp {dirname} -main {filename} -js {dirname}/{filename}.js -lib hxnodejsnode {dirname}/{filename}.js
Haxe (hxjava)4.0.5haxe -m {filename} -cp {dirname} --java {dirname}java -Xss{stack_size:mb}M -jar {dirname}/{filename}.jar
JavaScriptNode.js12.16.1node {dirname}/{basename} --stack-size={stack_size:kb}
JuliaJulia1.4.0julia {dirname}/{basename} ONLINE_JUDGE 2>/dev/nulljulia {dirname}/{basename}DataStructures,Primes
KotlinKotlin1.3.71kotlinc {dirname}/{basename} -include-runtime -d {dirname}/{filename}.jar -XXLanguage:+InlineClasses/usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp {dirname}/{filename}.jar {filename}Kt -Xss{stack_size:mb}m
LuaLua5.3.5luac -o {dirname}/luac.out {dirname}/{basename}lua {dirname}/luac.out
LuaJIT2.1.0luajit -O3 -b {dirname}/{basename} {dirname}/luac.outluajit -O3 {dirname}/luac.out
NimNim1.0.6nim cpp -d:release --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --hints:off -o:{dirname}/a.out {dirname}/{basename}{dirname}/a.outneo@0.3.0, bignum@1.0.4
Objective-CClang10.0.0clang $(gnustep-config --objc-flags) -I/usr/lib/gcc/x86_64-linux-gnu/7/include -o {dirname}/a.out {dirname}/{basename} $(gnustep-config --base-libs){dirname}/a.out
OCamlOCaml4.10.0eval $(opam env) ocamlfind ocamlopt -O2 -o {dirname}/a.out {dirname}/{basename} -linkpkg -thread -package str,num,threads,containers,core,iter,batteries{dirname}/a.outnum@1.3, containers@2.8, core@0.13.0, iter@1.2.1, batteries@2.11.0
OctaveOctave5.2.0flatpak run org.octave.Octave -W {dirname}/{basename}
PascalFree Pascal3.0.4fpc -O2 -Sd -Sh -o{dirname}/a.out {dirname}/{basename}{dirname}/a.out
PerlPerl5.26.1perl -W -c {dirname}/{basename}perl -X {dirname}/{basename}
RakuRakudo2020.02.1perl6 -c {dirname}/{basename}perl6 {dirname}/{basename}
PHPPHP7.4.4php -l {dirname}/{basename}php {dirname}/{basename}bcmath, gmp
PrologSWI-Prolog8.0.3swipl -O -g main -o {dirname}/{filename} -c {dirname}/{basename}{dirname}/{filename}
RacketRacket7.6raco exe -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
RubyCRuby2.7.1ruby -w -c {dirname}/{basename}RUBY_THREAD_VM_STACK_SIZE={stack_size:b} ruby {dirname}/{basename}numo-narray
RustRust1.42.0cargo build --release --offline --quiet{dirname}/a.outnum = "=0.2.1", num-bigint = "=0.2.6", num-complex = "=0.2.4", num-integer = "=0.1.42", num-iter = "=0.1.40", num-rational = "=0.2.4", num-traits = "=0.2.11", num-derive = "=0.3.0", ndarray = "=0.13.0", nalgebra = "=0.20.0", alga = "=0.9.3", libm = "=0.2.1", rand = { version = "=0.7.3", features = ["small_rng"] }, getrandom = "=0.1.14", rand_chacha = "=0.2.2", rand_core = "=0.5.1", rand_hc = "=0.2.0", rand_pcg = "=0.2.1", rand_distr = "=0.2.2", petgraph = "=0.5.0", indexmap = "=1.3.2", regex = "=1.3.6", lazy_static = "=1.4.0", ordered-float = "=1.0.2", ascii = "=1.0.0", permutohedron = "=0.2.4", superslice = "=1.0.0", itertools = "=0.9.0", itertools-num = "=0.1.3", maplit = "=1.0.2", either = "=1.5.3", im-rc = "=14.3.0", fixedbitset = "=0.2.0", bitset-fixed = "=0.1.0", proconio = { version = "=0.3.6", features = ["derive"] }, text_io = "=0.1.8", whiteread = "=0.5.0", rustc-hash = "=1.1.0", smallvec = "=1.2.0"
sedsed4.4sed -f {dirname}/{basename}
ScalaScala2.13.1JAVACMD=/usr/lib/jvm/java-8-openjdk-amd64/bin/java scalac -opt:_ -opt-inline-from:'**' -opt-warnings:_ -deprecation -d {dirname} {dirname}/{basename}JAVACMD=/usr/lib/jvm/java-8-openjdk-amd64/bin/java scala -J-Xss{stack_size:mb}M -classpath {dirname} {filename}
SchemeGauche0.9.9gosh precomp -e {dirname}/{basename}gosh {dirname}/{basename}
Standard MLMLton20130715mlton -output {dirname}/a.out {dirname}/{basename}{dirname}/a.out
SwiftSwift5.2.1swiftc -Ounchecked -o {dirname}/a.out {dirname}/{basename}{dirname}/a.out
Textcat8.28cat {dirname}/{basename}
TypeScriptTypeScript3.8ln -s /usr/lib/node_modules {dirname}/node_modules; tsc {dirname}/{basename} --target ESNext --outDir {dirname} --moduleResolution node --module commonjsnode {dirname}/{filename}.js --stack-size={stack_size:kb}tstl
UnlambdaUnlambda2.0.0unlambda {dirname}/{basename}
VimVim8.2.0460cat - > /tmp/out; TERM=dumb vim -N -u NONE -i NONE -s {dirname}/{basename} /tmp/out > /dev/null 2>&1; cat /tmp/out
Visual Basic.NET Core3.1.201dotnet publish {dirname}/{filename} -c Release -r ubuntu.18.04-x64 -o {dirname} -v q --nologo 1>&2{dirname}/{filename}