Best Layout

最高のレイアウト

受賞者:Don Yang

引用元:https://www.ioccc.org/2000/dhyang.c

審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/2000/dhyang.hint

動作

実行すると「あく」が出てくる。

$ gcc -o dhyang dhyang.c

$ ./dhyang
char*d=")35E!'1cA,,!""2kE`*!-s@d(!(k(f//g&!)f.e5'f(!+a+)f%2g*!?f5f,!=f-*e/!<d"
"6e1!9e0'f3!6f)-g"       "5!4d*b+e6!0f%k)d7!+~^'c7!)z/d-+!'n%a0(d5!""%c1a+/d4"
"!2)c9e2!9b;e1!8b"       ">e/!7cAd-!5fAe+!7fBe(!8hBd&!:iAd$![7S,Q"    "0!1bF7"
"!1b?'_6!1c,8b4!2"       "b*a,*d3!2n4f2!${4f.'!%y4e5!&f%d-^-d7!4"       "c+b)"
"d9!4c-a'd:!/i('`"       "&d;!+l'a+d<!)l*b(d=!'m-a&d>!&d'`0_&c"           "?!"
"$dAc@!$cBc@!$b<^"       ""              "&d$`:!$d9_&l++^$!%f3"          "a'n"
"1_"                                   "$!&f/c(o/_%!(f+c)q*c%"         "!*f&d"
"+f$"                                "s&!-n,d)n(!0i-c-k)!3d/"        "b0h*!H`"
"7a,!["                      "7X0[!4cM,!4cK`*!4cJc(!4cHg&!4"       "c$j8f'!&~"
"]9e)!'"                 "|:d+!)""rAc-!*m*:d/!4c(b4e0!1r"        "2e2!/t0e4!-"
"y-c6!+|,c6!)f$b("       "h*c6"      "!(d'b(i)d5!(b*a'"         "`&c)c5!'b+`&"
"b'c)c4!&b-_$c"                      "'d*c3!&a.h'd+d"         "1!%a/g'e+e0!%b"
"-g(d.d/!&c*"                        "h'd1d-!(d%g)"         "d4d+!*l,d7d)!,h-"
"d;c'!.b0c"                             ">d%!A`Dc$"       "![7*i]5471[=ohr&o*"
"t*q*`*d"                                "*v*r;027"       "*~=h./}tcrsth&t:r9"
"b].,b"          ""      "-725"            "-.t--/"       "/#r[<t8-752793?<.~"
";b]."        "t--"      "+r/#"             "537-r"        "[/9~X.v90<6/<.v;-"
"52/="      "{kgoh."     "/}q"    ";u"       "vtohr"       "`.i*$engt$$,b;$/="
"t;v"      ";6=`it."    "`;"      "7=`"       ":,b-7"       "25=/o`..d;b]`--["
"/+"      "55/}o`.d:"   ""       "-?5"        "/}o`.'"       "v/i]q--[;52=`it"
".o"     ";53-.v96<7"            "/=o"        ":d=o--/"        "i]q--[;h./=i]"
"q"     "--[;v9h./<-"           "52="         "{cjuc&`"         "it.o;?4=o:d="
"o"      "--/i]q--["           ";54="        "{cjuc&i]q-"        "-[;76=i]q[;"
"6="       "vsru.i"            "/={"        "=),BihY_gha,)"        "",o[3217];
int i,        r,w           ,f,b,p,        t=641,x;n(){return         r<t?d[(*
d+143+(r                ++))%t]:r>        +1341?59:(x=d[(r++-t)        %351+t]
)?x^(p?6:0            ):(p=+34);}        main(){w=sprintf(o,"char"       "*d="
);r=p=0;for(      f=1;f<*d+143;)       if((b=d[f++])-33){if(b<+93){        if(
!p)o[w++]=34;for(i=35+(p?0:1);i    <b;i++)o[w++]=n();o[w++]=p?n():+34       ;}
else for(i=92;i<b;i++)o[w++]=32;}else o[w++]=10;o[w]=0;puts(o);};/*Don_Yang*/;

これを保存してコンパイル・実行すると「そく」が出てくる。

$ ./dhyang > aku.c

$ gcc -o aku aku.c

$ ./aku
char*d="S,Q0!1bF7!1b?'_""6!1c,8b4!2b*a,*d3""!2n4f2!${4f.'!%y4e5!&f%d-^-d7!4c+"
"b)d""9!4c-a'd:!/i("       "'`&d;!+l'a+d<!)l*b(d=!'m-a&d>""!&d'`0_&""c?!$dAc@"
"!$cBc@!$b<^&d$"               "`:!$d9_&l++^$!%f3a'n1_$!&f/c(o/_%"    "!(f+c)"
"q*c%!*f&d"                       "+f$s&!-n,d)n(!0i-c-k)!3d/b0h"        "*!H`"
"7a,!"               "[7X0"          "[!4cM,!4cK`""*!4cJc(!4cH"           "g&"
"!4c$j"          "8f'!&~]9e)"         "!'|:d+!)rAc-!*m*:""d/!"          "4c(b"
"4e0!1r2"     "e2!/t0e""4!-y-"          "c""6!+|,c6!)f$b(h"           "*c6!(d"
"'b(i)d5!(b*a'`&c)c5!'b+`&b'"          "c)c4!&b-_$c'd*c3!"          "&a.h'd+d"
"1!%a/g'e+e0!%b-g(d.d/!&c*"          "h'd1d-!(d""%g)d4d"         "+!*l,d7d)!,"
"h-d;c'!.b0c>d%!A`Dc$![7)"        "35E!'1cA,,!2kE`*!-"         "s@d(!(k(f//g&"
"!)f.e5'f(!+a+)f%2g*!?"         "f5f,!=f-*e/!""<d6"          "e1!9e0'f3!6f)-g"
"5!4d*b+e6!0f%k)d7!"          "+~^'c""7!)z/d-+!"           "'n%a0(d5!%c1a+/d4"
"!2)c9e2!9b;e1!8b"        ">e/!7c"      "Ad-!5fA"         "e+!7fBe(!8hBd&!:iA"
"d$![7*i]5471"          "["               "=ohr&"        "o*t*q*`*d*v*r;027*~"
"=h./}tc"                                    "rst"       "h&t:r9b].,b-725-.t-"
"-//#r"                              "[<t8-752793"        "?<.~;b].t""--+r/#5"
"37-"                  "r"     "[/9~X.v90<6/""<.v;"        "-52/={kgoh./}q;uv"
"t"       "ohr`.i*$engt$"     "$,b;$/=""t;v;6=`it.`"        ";7=`:,b-725=/o`."
".d;b]`--[/+55/""}o`.d"       ":-?5/}o`.'v/i]q--[;52"         "=`it.o;53-.v96"
"<7/=o:d=o--/i]q--[;h."      "/=i]q--[;v9h./<-52={cju"         "c&`it.o;?4=o:"
"d=o--/i]q--[;54={cju"      "c&i]q--[;76=i]q[;6=vsru.i/"         "={=),BihY_g"
"ha,)",o[3217];int i,       r,w,f,b,p,t=641,x;n(){return r<        t?d[(*d+143
+(r++))%t]:r>+1341?          59:(x=d[(r++-t)%351+t])?x^(p?6:         0):(p=+34
);}main(){w=sprintf(o          ,"char""*d=");r=p=0;for(f=1;f<*d         +143;)
if((b=d[f++])-33){if(b            <+93){if(!p)o[w++]=34;for(i=35+(        p?0:
1);i<b;i++)o[w++]=n();o[             w++]=p?n():+34;}else for(i=92;i        <b
;i++)o[w++]=32;}else o[w++]=10;o[w]=0;puts(o);};/*Don_Yang*/;;;;;;;;;;;;;;;;;;

これを保存してコンパイル・実行すると「ざん」が出てくる。

$ ./aku > soku.c

$ gcc -o soku soku.c

$ ./soku
char*d="X0[!4cM,""!4cK`*!4cJc(!4cHg&!4c$j8f'!&~]9e)!'|:d+!)rAc-""!*m*:d/!4c(b"
"4e0!1r2e2!/t0"      "e4!-y-c6!+|,c6!)f$b(h*c6!(d'b(i)d5""!(b*a'`&c)c5!'b+`&b"
"'c)c4!&b-_$c'"      "d*c3!&a.h'd+d1!%a/g'e+e0!%b""-g("   "d.d/!&c*h'd1d-!(d%"
"g)d4d+!*l,d7d"       ")!,h-d;c""'!.b0c>d%!A`Dc$![7)3"      "5E!'1cA,,!2kE`*!"
"-s@d(!(k(f//g&"      "!)f.e5"     "'f(!+a+)""f%2g*!"        "?f5f,!=f-*e/!<d"
"6e1!9e0'f3!6f)"                  "-g5!4d*b+e6!0f%k"          ")d7!+~^'c7!)z/"
""                               "d-+!'n%a0(d5!%c1"          "a+/d4!2)c9""e2!"
"9"                             "b;e1!8b>e/!7cAd-"         "!5fAe+!7fBe(!8hBd"
"&!"          ":"        "iAd$![7S,"  "Q0!1bF7!1"        "b?'_6!1c,8b4!2b*a,*"
"d3!2n4f2!${4f.'!"       "%y4e5!&"      "f%d-^"        "-d7!4c+b)d9!4c-a'd:!/"
"i('`&d;!+l'a+d<!"       ")l*b(d=!'"     "m-a"        "&d>!&d'`0_&c?!$dAc@!$c"
"Bc@!$b<^&d$"             "`:!$""d9_"    "&l"        "++^$!%f3a'n1_$!&f/c(o/_"
"%!(f+c)"                "q*c"     "%!*f&d+"        "f$s&!-n,d)n(!0i-c-k)!3d/"
"b0h*!"                "H`7a,!"      "[7*i"        "]5471[=ohr&o*t*q*`*d*v*r;"
"027"                 "*~=h./}tc"     "rs"        "th&t:r9b].,b-725-.t--//#r["
"<t"        "8-7"    "52793?<.~;b]"   ".t"       "--+r/#537-r[/9~X.v90<6/<.v;"
""        "-52/={kgoh./}q;uvtohr`.i*$eng"       "t$$,b;$/=t;v;6=`it.`;7=`:,b-"
""       "725=/o`..d;b]`--[/+55/}o`.d:-?"       "5/}o`.'v/i]q--[;52=`it.o;53-"
""      ".v96<7/=o:d=o--/i]q--[;h"  "./"        ""    "=i]q--[;v9h./<-52={cju"
""        "c&`it.o;?4=o:d=o--/i]"   "q-"                "-[;54={""cjuc&i]"  ""
"q"          "--[;76=i]q[;6=v"     "sru"                  ".i/={=),BihY_"   ""
"gh"          "a,)",o[3217]       ;int i                   ,r,w,f,b,p,t=   641
,x;n()          {return r       <t?d[(*                     d+143+(r       ++)
)%t]:r>+          1341        ?59:(x=d[          (r                       ++-t
)%351+t])?x                  ^(p?6:0):(        p=+34);                  }main(
){w=sprintf(o,             "char""*d="       );r=p=0;for               (f=1;f<
*d+143;)if((b=d[f        ++])-33){if(b      <+93){if(!p)o[            w++]=34;
for(i=35+(p?0:1);i<b;i++)o[w++]=n();o[    w++]=p?n():+34;}else      for(i=92;i
<b;i++)o[w++]=32;}else o[w++]=10;o[w]=0;puts(o);};/*Don_Yang*/;;;;;;;;;;;;;;;;

これを保存してコンパイル・実行すると、「あく」に戻る。

$ ./soku > zan.c

$ gcc -o zan zan.c

$ ./zan
char*d=")35E!'1cA,,!""2kE`*!-s@d(!(k(f//g&!)f.e5'f(!+a+)f%2g*!?f5f,!=f-*e/!<d"
"6e1!9e0'f3!6f)-g"       "5!4d*b+e6!0f%k)d7!+~^'c7!)z/d-+!'n%a0(d5!""%c1a+/d4"
"!2)c9e2!9b;e1!8b"       ">e/!7cAd-!5fAe+!7fBe(!8hBd&!:iAd$![7S,Q"    "0!1bF7"
"!1b?'_6!1c,8b4!2"       "b*a,*d3!2n4f2!${4f.'!%y4e5!&f%d-^-d7!4"       "c+b)"
"d9!4c-a'd:!/i('`"       "&d;!+l'a+d<!)l*b(d=!'m-a&d>!&d'`0_&c"           "?!"
"$dAc@!$cBc@!$b<^"       ""              "&d$`:!$d9_&l++^$!%f3"          "a'n"
"1_"                                   "$!&f/c(o/_%!(f+c)q*c%"         "!*f&d"
"+f$"                                "s&!-n,d)n(!0i-c-k)!3d/"        "b0h*!H`"
"7a,!["                      "7X0[!4cM,!4cK`*!4cJc(!4cHg&!4"       "c$j8f'!&~"
"]9e)!'"                 "|:d+!)""rAc-!*m*:d/!4c(b4e0!1r"        "2e2!/t0e4!-"
"y-c6!+|,c6!)f$b("       "h*c6"      "!(d'b(i)d5!(b*a'"         "`&c)c5!'b+`&"
"b'c)c4!&b-_$c"                      "'d*c3!&a.h'd+d"         "1!%a/g'e+e0!%b"
"-g(d.d/!&c*"                        "h'd1d-!(d%g)"         "d4d+!*l,d7d)!,h-"
"d;c'!.b0c"                             ">d%!A`Dc$"       "![7*i]5471[=ohr&o*"
"t*q*`*d"                                "*v*r;027"       "*~=h./}tcrsth&t:r9"
"b].,b"          ""      "-725"            "-.t--/"       "/#r[<t8-752793?<.~"
";b]."        "t--"      "+r/#"             "537-r"        "[/9~X.v90<6/<.v;-"
"52/="      "{kgoh."     "/}q"    ";u"       "vtohr"       "`.i*$engt$$,b;$/="
"t;v"      ";6=`it."    "`;"      "7=`"       ":,b-7"       "25=/o`..d;b]`--["
"/+"      "55/}o`.d:"   ""       "-?5"        "/}o`.'"       "v/i]q--[;52=`it"
".o"     ";53-.v96<7"            "/=o"        ":d=o--/"        "i]q--[;h./=i]"
"q"     "--[;v9h./<-"           "52="         "{cjuc&`"         "it.o;?4=o:d="
"o"      "--/i]q--["           ";54="        "{cjuc&i]q-"        "-[;76=i]q[;"
"6="       "vsru.i"            "/={"        "=),BihY_gha,)"        "",o[3217];
int i,        r,w           ,f,b,p,        t=641,x;n(){return         r<t?d[(*
d+143+(r                ++))%t]:r>        +1341?59:(x=d[(r++-t)        %351+t]
)?x^(p?6:0            ):(p=+34);}        main(){w=sprintf(o,"char"       "*d="
);r=p=0;for(      f=1;f<*d+143;)       if((b=d[f++])-33){if(b<+93){        if(
!p)o[w++]=34;for(i=35+(p?0:1);i    <b;i++)o[w++]=n();o[w++]=p?n():+34       ;}
else for(i=92;i<b;i++)o[w++]=32;}else o[w++]=10;o[w]=0;puts(o);};/*Don_Yang*/;

解説

Quineの変種。 わかりやすくインパクトがあるので、IOCCCの中では有名な作品だと思う。Quineに興味を持った人は読解すべき。

最初のコード形状は、『るろうに剣心』に出てくるキャラクター、斎藤一。「悪・即・斬」は、斎藤一が作中で述べる信念のこと。

アスキーアートプログラムがいっぱいあるサイトで有名なDon Yang (omoikane)の初作品。