トップ «前の日記(2007-03-23) 最新 次の日記(2007-04-10)» 編集

U-memo

2006|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|
2009|08|10|
2010|02|03|
2011|11|12|
2012|04|
2016|02|
All= / Today= / Yesterday=

2007-04-04 [長年日記]

_ [Golf][OCaml] あなごる right time

OCaml のライブラリを全く信頼していなかったことがおもな敗因かなー。

しかし閏秒の扱いを全く知らなかったのも事実でー。

timezone のファイルは

/usr/share/zoneinfo/*

にあるけれど、閏秒考慮はその中の

/usr/share/zoneinfo/right/*

だから UTC の場合は TZ=right/UTC となるわけか。

問題タイトルでちゃんと語っていたわけですねぇ。はー。

_ [Golf][OCaml] あなごる Bracket matching

概ね魔法の差、でいいのかな。

あれ? ksk さんのには End-of-file 例外の処理が出てこないな。 入力の最後に改行があったんかしらん。 (追記)何を寝ぼけたことを書いてるんだオレわ。

ksk さん

let p,q,x=Obj.magic(Printf.printf,Scanf.scanf,"failed at: %c%s\n")
let rec f(h::t)=q"%c"
 (fun c->
  c=10&(h=0&0=p"yes\n"||p x 'E'"OL";f[0])
  ||c*7mod 4<2&f(c::h::t)
  ||h=c-2+41/c&f t
  ||(q"%s\n"(p x c);f[0])
 );;
f[0]

わたし

open String;;
while 1=1do
 let o,a,p,u=print_endline,read_line(),"failed at: ","(<[{}]>)"in
 let rec(@)l i=
  try
   let q=index u a.[i]in
     q<4&u.[7-q]::l@i+1
     ||List.hd l=a.[i]&List.tl l@i+1
     ||()=o(p^sub a i(length a-i))
   with _->
     l=['0']&()=o"yes"
     ||()=o(p^"EOL")in
 ['0']@0
done

スタックに使うリストをさいしょに括弧文字以外の物を番兵として入れておくのは同じ(魔法を使ってないので私のは Char であるけれど)。

_ [Golf][OCaml] あなごる

OCaml 11位転落 だー

2問解けば10位復帰できそうだけど(平均点を上げる努力をしない子