変形オセロ. 本当はLINESをハードコーディングせずに書くべきだったと思う.
あと, 指定された点以外に共有点を持つような2曲線だった場合に死ぬ. この場合は反転すべき点一覧を別途保持するしか無いと思う.
tyama_esm2.rb
#!/usr/bin/env ruby
#https://gist.github.com/mattsan/07674b095908fda117a0
LINES=['AFGD','AJIC','BJFE','BIHD','CHGE']
def dfs(line,d,cur,color)
return false if cur==-1||cur==line.size
return true if $colors[line[cur]]==color
$colors[line[cur]]=color if dfs(line,d,cur+d,color)
end
if __FILE__==$0
while gets
$colors=Hash[*('A'..'E').flat_map{|e|[e,0]}+('F'..'J').flat_map{|e|[e,1]}]
$_.chomp.chars{|c|
$colors[c]^=1
LINES.each{|l|
idx=l.index(c)
if idx
dfs(l,1,idx+1,$colors[c])
dfs(l,-1,idx-1,$colors[c])
end
}
}
puts ('A'..'J').map{|e|'WR'[$colors[e],1]}*''
STDOUT.flush
end
end