Language Test 202001
Can Participate: All Rated Range: - Penalty: None
Welcome to Language Test!
コンテストについて
このコンテストは、言語のアップデートテスト用コンテストですこちらのスプレッドシートにて募集を行っていた各言語のバージョンアップならびに新規追加した言語のテストを行うためのコンテストです。
コンテストの流れ
コンテストの流れは、以下のようになります。- 問題ボタンから好きな問題を1問開き、解き方を考えます。
- 解き方が思いついたら、ソースコードを書きます。思いつかない場合は、他の問題を見ても問題ありません。
- 正しいソースコードが書けたと思ったら、解答ボタンを選択し、問題及び言語を選択し、ソースコードを貼り付け、提出します。
- 解答ボタンより、自分の解答を確認すると、ソースコードに対するジャッジ結果が表示されます。ACと表示されれば正解、それ以外は不正解となります。なお、WJと表示されている場合は、ジャッジ待ちの状態ですので、定期的に更新ボタンを押しながら、暫くお待ちください。
- 正解だった場合は、次の問題へ挑戦しましょう。不正解だった場合は、また同じ問題に挑戦しても、別の問題を解いてみても構いません。
- コンテストが終了すると、結果に応じて、順位表にて自分の順位が確認閲覧出来ます。なお、コンテスト中でも、途中経過を確認することは可能です。
メニューについて
なお、上メニューバーの各ボタンの機能は、以下の通りです。- トップ: 現在閲覧中のページです。
- 問題: コンテストの問題の閲覧ができます。
- 提出: コンテストの問題に対する、解答ソースコードを提出することが出来ます。
- 質問: コンテスト全体、および各問題に対して、コンテスト中に質問し、その回答を閲覧することが出来ます。
- 解答: 今までに自分が提出した解答を閲覧することができます。また、コンテスト終了後には他の参加者の解答状況を閲覧することが出来ます。
- 順位表: 現在のコンテストの順位表が閲覧できます。
実行環境
更新履歴
- 2021/07/20
- AtCoder Libraryをv1.4にアップデートしました
- 2020/10/07
- C++にAtCoder Libraryのv1.2が導入されました
- スタックサイズが固定になっていた以下の言語において問題によって変化するようにプレースホルダに変更しました
- Java(11.0.6)
- Java(1.8.0)
- Closure
- Haxe (hxjava)
- Kotlin
- Ruby
- Scala
- TypeScript
- 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が正常動作していませんこちらのスプレッドシートの作業シートを確認し、シート1のObjective-Cの項目を修正してください2020/03/03 スプレッドシートに追記分でコンパイラのインストール。動作するようになったと思いますが提出がないため検証が不可能となっています- 2020/04/01 正常に動作していることを確認
コンパイラオプション/実行時オプション/ライブラリ
下の表が見づらい場合はこちらのスプレッドシートの最終版
を確認してください
言語 | 実装 | バージョン | コンパイルコマンド | 実行コマンド | インストール済みライブラリ |
---|---|---|---|---|---|
C | gcc | 9.2.1 | gcc -std=gnu11 -O2 -DONLINE_JUDGE -o {dirname}/a.out {dirname}/{basename} -lm | {dirname}/a.out | |
Clang | 10.0.0 | clang -std=c11 -O2 -DONLINE_JUDGE -o {dirname}/a.out {dirname}/{basename} -lm | {dirname}/a.out | ||
C++ | gcc | 9.2.1 | g++ -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.out | AtCoder Library v1.4, Boost (1.72.0) |
Clang | 10.0.0 | clang++ -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.out | AtCoder Library v1.4, Boost (1.72.0) | |
Java | OpenJDK | 11.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} | |||
Python | CPython | 3.8.2 | python3.8 {dirname}/{basename} ONLINE_JUDGE 2>/dev/null | python3.8 {dirname}/{basename} | numba, numpy, scipy, scikit-learn, networkx |
PyPy | 7.3.0 | pypy {dirname}/{basename} | |||
PyPy3 | 7.3.0 | pypy3 {dirname}/{basename} | |||
Cython | 0.29.16 | cython -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 | ||
Shell | Bash | 5.0.11 | bash {dirname}/{basename} | ||
dash | 0.5.8 | sh {dirname}/{basename} | |||
zsh | 5.4.2 | zsh {dirname}/{basename} | |||
Ada | GNAT | 9.2.1 | gnat-9 make -O3 -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Awk | GNU Awk | 4.1.4 | awk -f {dirname}/{filename} | ||
bc | bc | 1.07.1 | bc --mathlib {dirname}/{basename} | ||
Brainfuck | a Brainfuck interpreter | 20041219 | bf -c999999999 {dirname}/{basename} | ||
C# | .NET Core | 3.1.201 | dotnet 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.105 | mcs -warn:0 -o+ -unsafe -r:System.Numerics -langversion:latest {dirname}/{basename} -out:{dirname}/{filename}.exe | mono {dirname}/{filename}.exe | ||
Mono (csc) | 3.5.0 | csc -warn:0 -o+ -unsafe -r:System.Numerics.dll -langversion:latest {dirname}/{basename} -out:{dirname}/{filename}.exe | mono {dirname}/{filename}.exe | ||
Clojure | Clojure | 1.10.1.536 | clojure -J-Xss{stack_size:mb}M {dirname}/{basename} | ||
COBOL | OpenCOBOL (Fixed) | 1.1.0 | cobc -x -O2 -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
OpenCOBOL (Free) | 1.1.0 | cobc -x -free -O2 -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | ||
Common Lisp | SBCL | 2.0.3 | sbcl --noinform --eval "(compile-file \"{dirname}/{filename}\")" --quit | sbcl --script {dirname}/{filename}.fasl | |
Crystal | Crystal | 0.33.0 | crystal build --release --no-debug --no-color -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
D | DMD | 2.091.0 | dmd -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.out | mir |
GDC | 9.2.1 | gdc -O2 -frelease -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | ||
LDC | 1.20.1 | ldc2 -O -release -of {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | ||
Dart | Dart | 2.7.2 | dart2native {dirname}/{basename} -o {dirname}/a.out | {dirname}/a.out | |
dc | dc | 1.4.1 | dc -f {dirname}/{basename} | ||
Erlang | Erlang | 22.3 | erlc {basename} 1>&2 | erl -noshell -run {filename} main run erlang halt | |
Elixir | Elixir | 1.10.2 | elixirc {dirname}/{basename} -o {dirname} | elixir -pa {dirname} -e {filename}.main | |
F# | .NET Core | 3.1.201 | dotnet publish {dirname}/{filename} -c Release -r ubuntu.18.04-x64 -o {dirname} -v q --nologo 1>&2 | {dirname}/{filename} | |
Mono | 10.2.3 | fsharpc -O -o {dirname}/a.exe {dirname}/{basename} | mono {dirname}/a.exe | ||
Forth | gforth | 0.7.3 | gforth-fast {dirname}/{basename} -e bye | ||
Fortran | GNU Fortran | 9.2.1 | gfortran -O2 -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Go | Go | 1.14.1 | go build -buildmode=exe -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | https://github.com/gonum/gonum https://github.com/emirpasic/gods |
Haskell | GHC | 8.8.3 | ghc -o a.out -O2 {dirname}/{filename} | {dirname}/a.out | QuickCheck-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 |
Haxe | Haxe (hxnodejs) | 4.0.5 | haxe -cp {dirname} -main {filename} -js {dirname}/{filename}.js -lib hxnodejs | node {dirname}/{filename}.js | |
Haxe (hxjava) | 4.0.5 | haxe -m {filename} -cp {dirname} --java {dirname} | java -Xss{stack_size:mb}M -jar {dirname}/{filename}.jar | ||
JavaScript | Node.js | 12.16.1 | node {dirname}/{basename} --stack-size={stack_size:kb} | ||
Julia | Julia | 1.4.0 | julia {dirname}/{basename} ONLINE_JUDGE 2>/dev/null | julia {dirname}/{basename} | DataStructures,Primes |
Kotlin | Kotlin | 1.3.71 | kotlinc {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 | |
Lua | Lua | 5.3.5 | luac -o {dirname}/luac.out {dirname}/{basename} | lua {dirname}/luac.out | |
LuaJIT | 2.1.0 | luajit -O3 -b {dirname}/{basename} {dirname}/luac.out | luajit -O3 {dirname}/luac.out | ||
Nim | Nim | 1.0.6 | nim cpp -d:release --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --hints:off -o:{dirname}/a.out {dirname}/{basename} | {dirname}/a.out | neo@0.3.0, bignum@1.0.4 |
Objective-C | Clang | 10.0.0 | clang $(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 | |
OCaml | OCaml | 4.10.0 | eval $(opam env) ocamlfind ocamlopt -O2 -o {dirname}/a.out {dirname}/{basename} -linkpkg -thread -package str,num,threads,containers,core,iter,batteries | {dirname}/a.out | num@1.3, containers@2.8, core@0.13.0, iter@1.2.1, batteries@2.11.0 |
Octave | Octave | 5.2.0 | flatpak run org.octave.Octave -W {dirname}/{basename} | ||
Pascal | Free Pascal | 3.0.4 | fpc -O2 -Sd -Sh -o{dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Perl | Perl | 5.26.1 | perl -W -c {dirname}/{basename} | perl -X {dirname}/{basename} | |
Raku | Rakudo | 2020.02.1 | perl6 -c {dirname}/{basename} | perl6 {dirname}/{basename} | |
PHP | PHP | 7.4.4 | php -l {dirname}/{basename} | php {dirname}/{basename} | bcmath, gmp |
Prolog | SWI-Prolog | 8.0.3 | swipl -O -g main -o {dirname}/{filename} -c {dirname}/{basename} | {dirname}/{filename} | |
Racket | Racket | 7.6 | raco exe -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Ruby | CRuby | 2.7.1 | ruby -w -c {dirname}/{basename} | RUBY_THREAD_VM_STACK_SIZE={stack_size:b} ruby {dirname}/{basename} | numo-narray |
Rust | Rust | 1.42.0 | cargo build --release --offline --quiet | {dirname}/a.out | num = "=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" |
sed | sed | 4.4 | sed -f {dirname}/{basename} | ||
Scala | Scala | 2.13.1 | JAVACMD=/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} | |
Scheme | Gauche | 0.9.9 | gosh precomp -e {dirname}/{basename} | gosh {dirname}/{basename} | |
Standard ML | MLton | 20130715 | mlton -output {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Swift | Swift | 5.2.1 | swiftc -Ounchecked -o {dirname}/a.out {dirname}/{basename} | {dirname}/a.out | |
Text | cat | 8.28 | cat {dirname}/{basename} | ||
TypeScript | TypeScript | 3.8 | ln -s /usr/lib/node_modules {dirname}/node_modules; tsc {dirname}/{basename} --target ESNext --outDir {dirname} --moduleResolution node --module commonjs | node {dirname}/{filename}.js --stack-size={stack_size:kb} | tstl |
Unlambda | Unlambda | 2.0.0 | unlambda {dirname}/{basename} | ||
Vim | Vim | 8.2.0460 | cat - > /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 Core | 3.1.201 | dotnet publish {dirname}/{filename} -c Release -r ubuntu.18.04-x64 -o {dirname} -v q --nologo 1>&2 | {dirname}/{filename} |