"%s,%s" % [calc_area(w, b), calc_area(b, w)]
- # ç½é»ã®é§ã®åº§æ¨ã®ãªã¹ã
- cl=is.split(?,).map{|s|s.scan(/([a-s])(\d+)/).map{|x,y|[x.ord-97,y.to_i-1]}}
- # é§ã®åå¨ã示ã2次å
é
å
- # é£å°å é ç¶æ³ã示ã2次å
é
å
- # é§ã®x座æ¨ãy座æ¨ã®ãªã¹ã
- # éã®è²ã®é§ã®æ¨é«ããã
- elev=(0..L+1).map{[0]*(L+2)}
- cl[1-i].each{|x,y|x.upto(L){|i|y.upto(L){|j|elev[j+1][i+1]+=1}}}
- xlist.combination(2).to_a.product(ylist.combination(2).to_a).each{|(x0,x1),(y0,y1)|
- #p "#{x0},#{x1},#{y0},#{y1}"
- # 4é
ã«é§ããªããã°ã¹ããã
- ex[y0][x0]&&ex[y0][x1]&&ex[y1][x0]&&ex[y1][x1]
- # éã®è²ã®é§ãå«ãã§ãããã¹ããã
- # 4é
ã®æ¨é«ãããå«ã¾ããéã®è²ã®é§ã®åæ°ãè¨ç® ( ãããããã¡ã½ãã )
- next if elev[y1+1][x1+1]-elev[y1+1][x0]-elev[y0][x1+1]+elev[y0][x0]>0
- #p "pass: #{x0},#{x1},#{y0},#{y1}"
- # æå¾ã«é£å°ãã«ã¦ã³ã
- oc.reduce(0){|s,r|s+r.reduce(&:+)}
class TestRunner < Minitest::Test
assert_equal solve("d3d4e3e4d9h7h9j3j4j7j9,f4f6g4g5g6h5h6"), "5,3"