ネタばれプラグインは RSS でも無力なのねー。 読みたくない人はきをつけよー。
概ね一月以上膠着しているものをネタばらしー。
print_string"Hello, world!"
これしかないはず。
exec するなら短いコマンドを探すのみ。
Sys.command"pg"
しない場合は普通に書くとこんなもんだが、
while 1=1do print_endline(read_line())done
Scanf に魔術が。
Scanf.scanf"%s@1"print_string
let w,k=" on the wall",", "let(>)i o=Printf.printf"%d shinichiro%s of hamaji%s"i[|"es";""|].(1/i)o;i;;for i=99downto 1do(i>w^k>[|". Take one down and pass it around";". Go to the store and buy some more"|].(1/i)^k)-1+1/i*99>w^". "done
まだ 10byte 縮むんですって。 終了条件がうまく作れれば縮みそうなんだけど。
let(!)u=""example."^u^""";;Printf.printf"<HTML> <HEAD> <TITLE>Example Web Page</TITLE> </HEAD> <body> <p>You have reached this web page by typing %s, %s, or %s into your web browser.</p> <p>These domain names are reserved for use in documentation and are not availabl e for registration. See <a href=\"http://www.rfc-editor.org/rfc/rfc2606.txt\">RFC 2606</a>, Section 3.</p> </BODY> </HTML>"!"com"!"net"!"org"
あと2byte が縮まらない
let rec f b c i=print_string c;f(b^"))")b(i-i/i);;f" :-)"": :-"32
あと15Bはちょっと遠い。アルゴリズムの問題か?
open Printf let rec(@)p q=let(>)x y=x=y&()=printf"Set is tied at %d "x||()=printf"Player%d %s %d - %d "(2-(x+3)/(y+3))[|"leads";"wins the set"|].(x/7+y/7)(max x y)(min x y);x@y in read_int()=1&p+1>q||p>q+1;;0@0
ネタばれ済ですが再掲
let rec a c=c>""&print_endline c=();a(read_line());;a""
あと1バイトなんだが全然違うんだろうか。
print_string([|" ('-')/ /|_|";"\('-') |_|\\";"\('-')/ |_|"|].(String.length(read_line())/5)^" | |")
まだ多少は縮むのだけど、ずいぶんと先は長い。
#load"str.cma"let z=Printf.printf"%d "let rec s r t=fun(h::i::j)->let p=t+h+i+if h+i>9then List.hd j else 0in z p;s(r-r/r)p(if h>9then i::j else j);;s 9 0(List.map int_of_string(Str.split(Str.regexp" ")(read_line())))
let rec(>)n i=n+i/i>i-Obj.magic( ごにょごにょ Printf.printf"%d "n);;1>read_int()
Perl でトップに立ってるのに OCaml で 3B 届いてないのが謎。
print_int 42
先は長いがやる気は無し。
let x=String.length(read_line())let y a=List.iter(fun b->Printf.printf"%s of %ss "b a)(["Ace";"2";"3";"4";"5";"6";"7";"8";"9";"10";"Jack"]@[|[];["Queen"];[]|].(x/8)@["King"]);;y"Spade";y"Heart";x<11&()=y"Diamond";y"Club"
let rec(!)c=c();print_endline(c());!c;;!read_line
while 1=1do Printf.printf"%.9f "(sqrt(read_float()))done
実質初のネタばらし?
let r=ref(read_int())let rec(@)j i=j=1&decr r=Printf.printf"%d "i;i/j*j=i&i@ !r/ !r+i||j-1@i;;1@2
あと1バイトなんだがこんなシンプルだと方向性も見えない。
while 1=1do print_char(Char.chr(input_byte stdin lxor 32))done
解答に問題があるのでおおむね解答埋め込み。
let x=String.sub;;Scanf.scanf"%s %s"(fun a b->print_string[|x(b^b)0 51^"0100001000001010011010000101000001100000000001111110001001000010101010011001011000111101
010000010001101111";x
b 4 35;x a 0 29^"abraracadabrabrabracadabra"|].(Char.code(a.[6])/49))
ただサンプル解答が正しくても、まじめに解くと T.O. するわけだが。
最近までトップだったわけだが転落。この延長上だとは思うんだが...
let rec(&)x b=read_line(print_string b)^" "&x;;""&""
let rec(!)b=print_endline(b()^" "^b());!b;;!read_line
あと2バイト?
Scanf.scanf"%s@ %s@?"(fun a b->print_string(b^a))
#?はバイナリ文字
exec
print_int(Sys.command(read_line()))
exec なし
print_int[|0;255;1|].(input_byte stdin mod 4)
他にやってるひといないけど
#load"str.cma"open List let f x=Str.split(Str.regexp" ")(read_line x)let rec d x=try d(x@[f()])with _->x let rec(%)l=function h::t->sort(fun p q->compare(nth p(h-1))(nth q(h-1)))l%t|_->iter(fun u->print_endline(String.concat" "u))l;;d[]%rev_map int_of_string(f())
つかれたのでここまで
_ ksk [dancingを参考にしたら結構縮んで,Haskellに追いつきました. あとhammingは魔法を使わないと縮むか..]