CodeIQ MAGAZINECodeIQ MAGAZINE

「第3回デスマコロシアム」問題のトーナメント結果発表です!──優勝者は…! #デスマコロシアム

2014.06.09 Category:CodeIQ問題解説・リーダーボード Tag:

  • 14
  • このエントリーをはてなブックマークに追加
tbprg_badge_deathma

第3回デスマコロシアムのトーナメント結果発表です。
今回のチャンピオンはどなたでしょうか?

優勝、準優勝、最小賞の方には、デスマコロシアム チャンピオンバッジが付与されます!
by tbpgr

1.はじめに

「第3回デスマコロシアム」へようこそ!出題者のtbpgr コロシアム管理人です。

この記事は

  • トーナメントの参加集計
  • トーナメントの結果発表
  • 参加された皆様の解答例

の3本立てでお送りします。

2.トーナメントの参加集計

エントリー結果

挑戦者数 正解者数 不正解者数
104 103 (99.04%) 1 (0.96%)

チーム内訳

Total PM TL DB SE PG
309 46 (14.89%) 55 (17.80%) 56 (18.12%) 65 (21.04%) 88 (28.48%)

チーム内訳(グラフ)

言語内訳

言語名 人数 言語ペナルティ 最小【文字数×文字種】 平均【文字数×文字種】
Assembler (nasm-2.10.01) 1 0 point 600 600
AWK (gawk) 1 0 point 962 962
AWK (mawk) 1 0 point 1395 1395
Bash 3 -20 point 858 1074
Brainf**k 4 -30 point 280 306
C# 1 0 point 1300 1300
C++ 4.3.2 1 0 point 612 612
C++ 4.8.1 2 -10 point 576 628
C++11 3 -20 point 544 1011
C99 strict 2 -10 point 595 630
Common Lisp (clisp) 1 0 point 1000 1000
C 9 -80 point 819 1991
F# 1 0 point 4080 4080
Forth 3 -20 point 364 406
Fortran 1 0 point 578 578
Groovy 1 0 point 375 375
Haskell 4 -30 point 176 1373
Intercal 1 0 point 11620 11620
Java7 1 0 point 1953 1953
JavaScript (rhino) 1 0 point 1800 1800
JavaScript (spidermonkey) 1 0 point 4216 4216
Java 2 -10 point 1334 1462
Lua 1 0 point 1056 1056
Nemerle 1 0 point 828 828
Objective-C 1 0 point 912 912
Octave 12 -110 point 130 141
Pascal (fpc) 1 0 point 2088 2088
Perl 6 2 -10 point 266 266
Perl 4 -30 point 520 804
PHP 5 -40 point 648 1349
Python 3 1 0 point 1408 1408
Python 4 -30 point 759 963
Ruby 12 -110 point 143 397
R 3 -20 point 540 1720
Scala 3 -20 point 204 2909
Tcl 1 0 point 1820 1820
Whitespace 7 -60 point 159 529

言語内訳(グラフ)

青:2014/05/30 23:30 時点の人数
赤:2014/06/02 10:00 締め切り時の人数

最小【文字数×文字種】

最小【文字数×文字種】達成者にはチャンピオンバッジを付与します。
※付与するバッジは一番上位のものを1つだけです。
※以下のリストは敬称略

言語 【文字数×文字種】 名前
Octave 130 ryosy383
なおゆら
knightrogen
Mu
tnkayu
permil
daru
NeoCat
ciel
tails
electrolysis

言語別最小【文字数×文字種】

言語別最小【文字数×文字種】達成者には強豪バッジを付与します。
※付与するバッジは一番上位のものを1つだけです。
※以下のリストは敬称略

言語 【文字数×文字種】 名前
Assembler (nasm-2.10.01) 600 みけCAT
AWK (gawk) 962 kuuso
AWK (mawk) 1395 CSUPMAD
Bash 858 hichon
Brainf**k 280 unsre
htsign
ささささん@がんばらない
C# 1300 ひろゆば
C++ 4.3.2 612 kutsulog
C++ 4.8.1 576 nsase
C++11 544 玄くろ
C99 strict 595 にぃちぇ
Common Lisp (clisp) 1000 furushchev
C 819 eno89
F# 4080 pice
Forth 364 gogoweb_ikeda
Fortran 578 Azicore
Groovy 375 24D
Haskell 176 masaakif1974
Intercal 11620 shoek
Java7 1953 SES
JavaScript (rhino) 1800 suppy193
JavaScript (spidermonkey) 4216 naoki342
Java 1334 kunibemani
Lua 1056 k.hamada
Nemerle 828 高階 アリス
Objective-C 912 キャス
Octave 130 ryosy383
なおゆら
knightrogen
Mu
tnkayu
permil
daru
NeoCat
ciel
tails
electrolysis
Pascal (fpc) 2088 ゆうふーる
Perl 6 266 naoki_kp
電脳妖精
Perl 520 okaimono
PHP 648 ピノン
Python 3 1408 Kezy
Python 759 Chatnoir
Ruby 143 antimon2
R 540 norisuke
Scala 204 takuya0301
rotary-o
Tcl 1820 カニ戯(ry
Whitespace 159 mbsp

3.トーナメント結果発表

お待たせ致しました!
トーナメント結果の発表です。
結果はベスト64から発表致します。
ベスト64で勝てば強豪バッジ獲得です!

※名前の載っていない方は残念ながら予選落ちとなります。
※トーナメント表は敬称略

トーナメント表に関する補足説明

  • 「結果ポイント」はチームの勝敗によるポイントと言語ペナルティの合計です
  • 「デスマ発生」はデスマーチの発生した試合の場合に○になります
  • 「引分ランダム決着」はポイントが同点かつ言語ペナルティも同点になり、
    ランダム抽選による勝敗決定になった場合に○になります

ベスト64

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
rotary-o SLD Scala -20 -204 -219 × ×
× sapics LSD Whitespace -60 -189 -244 × ×
htsign SMG Brainf**k -30 -280 -300 × ×
× todaemon GDS Ruby -110 -228 -333 × ×
Mu GGG Octave -110 -130 -240 × ×
× Arith_td SLD Python -30 -888 -903 × ×
カニ戯(ry GGG Tcl 0 -1820 0 ×
× NeoCat MDS Octave -110 -130 0 ×
× Vetteru LDS C++ 4.8.1 -10 -680 -680 × ×
にぃちぇ GDG C99 strict -10 -595 -605 × ×
× SES GGG Java7 0 -1953 -1953 × ×
mbsp DLG Whitespace -60 -159 -209 × ×
× manozo MLM Ruby -110 -304 0 ×
ささささん@がんばらない GGG Brainf**k -30 -280 0 ×
ぶん SLD Whitespace -60 -192 -237 × ×
× ZudenSachenselbst GGG Haskell -30 -336 -366 × ×
deflat LDL Whitespace -60 -165 -215 × ×
× まままま MSG Perl -30 -1040 -1065 × ×
mamekin MDS C -80 -820 -895 × ×
× furushchev MDG Common Lisp (clisp) 0 -1000 -1000 × ×
× ピノン DSG PHP -40 -648 -683 × ×
hoi SSS Ruby -110 -165 -270 × ×
antimon2 DLS Ruby -110 -143 -238 × ×
× setsuna82001 GGG Ruby -110 -252 -362 × ×
× tnkayu SLS Octave -110 -130 -240 × ×
knightrogen SSS Octave -110 -130 -235 × ×
はぅ君 GSG Whitespace -60 -195 0 ×
× 玄くろ MLG C++11 -20 -544 0 ×
× unsre GGG Brainf**k -30 -280 -310 × ×
himox_x LSS Whitespace -60 -195 -240 × ×
daru SSS Octave -110 -130 -230 × ×
× tnakao LSG Perl -30 -567 -597 × ×
× gogoweb_ikeda LLL Forth -20 -364 -384 × ×
ryosy383 SSS Octave -110 -130 -225 × ×
masaakif1974 DSL Haskell -30 -176 -191 × ×
× tails GGG Octave -110 -130 -240 × ×
ciel LGL Octave -110 -130 -240 × ×
× キャス LLL Objective-C 0 -912 -907 × ×
angelhalo SLL Haskell -30 -345 -370 × ×
× okasho-hato SDL C99 strict -10 -665 -675 × ×
× stone725 GGG C -80 -4154 -4234 × ×
せきゅあ DSG Whitespace -60 -2610 -2660 × ×
電脳妖精 DMM Perl 6 -10 -266 -271 × ×
× okaimono GMM Perl -30 -520 -550 × ×
pnerope SSS Bash -20 -1440 -1445 × ×
× iehn GGG PHP -40 -3364 -3404 × ×
みけCAT SLG Assembler (nasm-2.10.01) 0 -600 -600 × ×
× kutsulog DLS C++ 4.3.2 0 -612 -602 × ×
× Chatnoir GMM Python -30 -759 -784 × ×
electrolysis GDM Octave -110 -130 -240 × ×
kuma- DSL Octave -110 -270 -380 × ×
× k.hamada DSM Lua 0 -1056 -1051 × ×
× PGMY GMG C -80 -912 -987 × ×
hichon LSG Bash -20 -858 -873 × ×
× quarter LDS Python -30 -1008 -1033 × ×
norisuke MDG R -20 -540 -555 × ×
てるてるぼーず LDG R -20 -594 0 ×
× あさりの味噌汁 MMM Bash -20 -925 10 ×
takuya0301 DDD Scala -20 -204 -219 × ×
× catssoft LDG Haskell -30 -4636 -4661 × ×
EEL733 MDG C++11 -20 -576 -591 × ×
× naganok MSL C -80 -1080 -1155 × ×
hotvenus DDG Ruby -110 -176 10 ×
× CSUPMAD GSM AWK (mawk) 0 -1395 0 ×

ベスト32

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
rotary-o SLD Scala -20 -204 -219 × ×
× htsign SMG Brainf**k -30 -280 -305 × ×
Mu GGG Octave -110 -130 -240 × ×
× カニ戯(ry GGG Tcl 0 -1820 -1820 × ×
× にぃちぇ GDG C99 strict -10 -595 -605 × ×
mbsp DLG Whitespace -60 -159 -209 × ×
× ささささん@がんばらない GGG Brainf**k -30 -280 -310 × ×
ぶん SLD Whitespace -60 -192 -237 × ×
deflat LDL Whitespace -60 -165 -225 × ×
× mamekin MDS C -80 -820 -890 × ×
× hoi SSS Ruby -110 -165 -270 × ×
antimon2 DLS Ruby -110 -143 -248 × ×
knightrogen SSS Octave -110 -130 -230 × ×
× はぅ君 GSG Whitespace -60 -195 -255 × ×
× himox_x LSS Whitespace -60 -195 -255 × ×
daru SSS Octave -110 -130 -235 × ×
× ryosy383 SSS Octave -110 -130 -235 × ×
masaakif1974 DSL Haskell -30 -176 -201 × ×
ciel LGL Octave -110 -130 -240 × ×
× angelhalo SLL Haskell -30 -345 -365 × ×
せきゅあ DSG Whitespace -60 -2610 0 ×
× 電脳妖精 DMM Perl 6 -10 -266 5 ×
× pnerope SSS Bash -20 -1440 -1450 × ×
みけCAT SLG Assembler (nasm-2.10.01) 0 -600 -600 × ×
electrolysis GDM Octave -110 -130 -230 × ×
× kuma- DSL Octave -110 -270 -375 × ×
× hichon LSG Bash -20 -858 -878 × ×
norisuke MDG R -20 -540 -550 × ×
× てるてるぼーず LDG R -20 -594 -609 × ×
takuya0301 DDD Scala -20 -204 -219 × ×
× EEL733 MDG C++11 -20 -576 -591 × ×
hotvenus DDG Ruby -110 -176 -286 × ×

ベスト16

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
rotary-o SLD Scala -20 -204 -209 × ×
× Mu GGG Octave -110 -130 -240 × ×
mbsp DLG Whitespace -60 -159 -214 × ×
× ぶん SLD Whitespace -60 -192 -247 × ×
deflat LDL Whitespace -60 -165 -220 × ×
× antimon2 DLS Ruby -110 -143 -243 × ×
knightrogen SSS Octave -110 -130 -240 ×
× daru SSS Octave -110 -130 -240 ×
masaakif1974 DSL Haskell -30 -176 -201 × ×
× ciel LGL Octave -110 -130 -235 × ×
× せきゅあ DSG Whitespace -60 -2610 -2660 × ×
みけCAT SLG Assembler (nasm-2.10.01) 0 -600 -600 × ×
electrolysis GDM Octave -110 -130 0 ×
× norisuke MDG R -20 -540 0 ×
takuya0301 DDD Scala -20 -204 -219 × ×
× hotvenus DDG Ruby -110 -176 -286 × ×

準々決勝

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
× rotary-o SLD Scala -20 -204 -219 × ×
mbsp DLG Whitespace -60 -159 -214 × ×
deflat LDL Whitespace -60 -165 -220 × ×
× knightrogen SSS Octave -110 -130 -230 × ×
masaakif1974 DSL Haskell -30 -176 -191 × ×
× みけCAT SLG Assembler (nasm-2.10.01) 0 -600 -600 × ×
× electrolysis GDM Octave -110 -130 -235 × ×
takuya0301 DDD Scala -20 -204 -219 × ×

準決勝

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
mbsp DLG Whitespace -60 -159 -214 × ×
× deflat LDL Whitespace -60 -165 -215 × ×
masaakif1974 DSL Haskell -30 -176 -201 × ×
× takuya0301 DDD Scala -20 -204 -219 × ×

決勝

勝敗 名前 チーム 言語 言語ペナルティ 【文字数×文字種】ペナルティ 結果ポイント デスマ発生 引分ランダム決着
× mbsp DLG Whitespace -60 -159 -219 × ×
masaakif1974 DSL Haskell -30 -176 -196 × ×

デスマコロシアムの第3回チャンピオンは masaakif1974様 になりました!!
おめでとうございます!

mbsp様 も準優勝おめでとうございます。
お二人にはデスマコロシアム チャンピオンバッジを付与致します。

ベスト16まで勝ち残った方にはデスマコロシアム 豪傑バッジを付与致します。
ベスト32まで勝ち残った方にはデスマコロシアム 強豪バッジを付与致します。
トーナメントに参加された方にはデスマコロシアム ファイターバッジを付与致します。

4.参加者解答例

問題内容

標準出力に

ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz

を出力してください。

出題者よりポイント

AからzまでをASCIIコードをインクリメントしながら文字列を出力します。
これを短く書きつつ文字種を抑える工夫が必要です。

electrolysis様 他10名:Octave 【文字数×文字種】(130)

全言語中最小解答でした。達成者は10名いますが、最初の達成者を優先して紹介致します。
electrolysis 様は前回デスマコロシアムの準優勝者でもあり前回はD言語最短も達成。
安定した実力を発揮されています。

  • ソースコード
disp('A':'z')

気づいてみればシンプルな解答なのですが、
マイナー言語ということもあり気づくこと自体が困難でした。

Octave最小解答達成者からも以下の様なご意見がありました

一個くらいはこういう言語あるだろうなーと思ってはいたけど、
最初に見つけた人はすごいなーと思います。普段から使ってるのかしら。
解の存在を知ってて探すのは楽なので、
最初に見つけた人にアドバンテージがあってもいいかもしれませんね。

続いて electrolysis 様コメント

コロンを使うと初期値から終端値までの配列を作ることができます。
文字列 'A' と 文字列 'z' を指定することで、それぞれの先頭の文字だけが利用され、
A の文字コードから z の文字コードまでの文字配列、すなわち文字列が生成されるようです。

「ようです」という言い回しをしていることから、普段からOctaveを利用されているわけではなく
今回の解答用に調べたのかな、と想像しています。

antimon2様:Ruby 【文字数×文字種】(143)

Ruby最小解答でした。

  • ソースコード
print *?A..?z

いつものように antimon2 様の解説付きです。

・Ruby の print は、実は引数を複数受け取れて、デフォルトではそれをただ羅列して出力するだけです。
 後ろに改行はつきません。
・より正確には特殊変数 $, が nil でなければその値で join した結果を出力し、
 特殊変数 $\ が nil でなければ最後にそれを出力します。
・?A は、'A' と同義です(Ruby 1.9.x 以上。
 なお Ruby 1.8.x までは ?A は A の文字コード(すなわち 65 という数値)を表していました)。
・*?A..?z で、「'A'..'z' の範囲オブジェクトを(print の引数に)展開」します。
 「*」は所謂 splat 演算子ですね。
・つまりこのコードは、以下のコードと同じです。
print 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
・文字数13文字×文字種11種=143 です。
・ちなみに以下でも全く同じ結果になります:
print *:A..:z

参考までにRubyの公式ドキュメントが以下です。
Kernel#printに関する公式ドキュメント

mbsp様:Whitespace 【文字数×文字種】(159)

Whitespace 最小解答でした。
※最終結果では言語移動した方が多かったため159になりましたが、途中最小156まで到達しました。
ただし、最後までWhitespaceを選んだ方を優先して紹介致します。

WhitespaceはSpace,Tab,LFのみで構成されます。
そのままだと読むことができないので半角スペースをS,タブをTとして表示しています。

  • ソースコード
SSSTSSSSST

SS
S
ST
SSSSST
TSSSS
SSSSTTTTSTT
TSST
TT

mbsp 様の解説が以下になります。

以下はコメントつきのソースコード
SSSTSSSSST
;スタックに56を積む
SS;ラベル[]
S
S;スタックを複製T
SS;スタックを文字列として出力、スタックは破棄される。SSST
;スタックに1を積むTSSS;先頭の二つを加算S
S;スタックを複製SSSTTTTSTT
;スタックに123を積むTSST;先頭の二つを減算
TT
;負ならラベル[]へ飛ぶ、スタックは破棄される。
ここまで
処理内容は56から122までをインクリメントして文字列として出力するだけなのでwhietespaceでもシンプルに書けた。

masaakif1974様:Haskell 【文字数×文字種】(176)

Haskell 最小解答でした。

  • ソースコード
putStr['A'..'z']

rotary-o様 他1名:Scala 【文字数×文字種】(204)

Scala 最小解答でした。達成者は2名いますが、最初の達成者を優先して紹介致します。

  • ソースコード
'A'to'z'map print

電脳妖精様 他1名:Perl6 【文字数×文字種】(266)

Perl 6 最小解答でした。達成者は2名いますが、先に達成者された解答者様を優先して紹介致します。
※言語移動した方は除外しています。

電脳妖精様は第1回デスマコロシアム優勝者です。

  • ソースコード
[65..122]>>.chr.say

5.さいごに

「第3回デスマコロシアム」問題へ多数の参加ありがとうございました。

「第4回デスマコロシアム」問題は、文字数に加えて重複文字が多いほどペナルティが大きくなります。
第3回は出来るだけ同じ文字で解答すると有利になる問題でしたが、
第4回は逆に出来るだけ同じ文字を使用せずに解答すると有利になる問題です。

メソッド名やリテラルが重複しないように工夫する必要があります。

いつものようにただ単に標準出力するだけのプログラムでの参加も可能です。
気軽にご参加ください。

解答コードの公開は歓迎致します。
共有しやすいようにハッシュタグを利用してTweetされることを推奨します
特に当記事の解答例にない言語については皆様興味があると思いますので
積極的に公開してください。

また、公開された解答は出題者の「デスマコロシアムまとめ記事」に追加していきます。

Tweet例

言語:XXX url #デスマコロシアム

CodeIQ運営事務局より

第4回デスマコロシアムは、こちらです。ぜひチャレンジしてみてください!

  • 問題挑戦はこちらから
  • 挑戦受付締切:2014年6月30日 AM10:00
  • 14
  • このエントリーをはてなブックマークに追加

■この記事を書いた人

avatar

tbpgr

CodeIQでRubyや様々なカテゴリの問題を出題中。 Twitter:@tbpgr Tbpgr Personal Page: http://tbpgr.github.io/

■関連記事

ついに最終回。「第12回デスマコロシアム」問題のトーナメント結果発表です!~優勝者は...!... 1.はじめに 「第12回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...
「第11回デスマコロシアム」問題のトーナメント結果発表です!~優勝者は…!... 1.はじめに 「第11回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...
「第10回デスマコロシアム」問題のトーナメント結果発表です!~優勝者は…!... 1.はじめに 「第10回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...
「第9回デスマコロシアム」問題のトーナメント結果発表です!─優勝者は…!... 1.はじめに 「第9回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...
「第8回デスマコロシアム」問題のトーナメント結果発表です!~優勝者は……! #デスマコロシアム... 1.はじめに 「第8回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...
「第7回デスマコロシアム」問題のトーナメント結果発表です!──優勝者は…! #デスマコロシアム... 1.はじめに 「第7回デスマコロシアム」へようこそ! この記事は トーナメントの参加集計 トーナメントの結果発表 参加された皆様の解答例 の3本立てでお送りします。 2.トーナメントの参加集計 エントリー結果 挑戦者数 正解者数 不正解者数 ...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ