fork download
  1. # A(0),B(1),C(2),D(3),E(4) ... outer
  2. # H(0),G(1),F(2),J(3),I(4) ... not outer
  3. # white:1, red:0
  4. def p2i(o,n)
  5. o>0 ? n : 5+(2-n)%5
  6. end
  7. while gets
  8. f=[1]*5+[0]*5
  9. $_.chomp.bytes do |c|
  10. o,n=c<70 ? [1,c-65] : [0,(72-c)%5]
  11. rev=f[p2i(o,n)]^=1
  12. [1,-1].each do |s|
  13. t=[[[0,1],[1,4]],[[0,3],[0,4],[1,2]]][o].map{|e|p2i(e[0],(n+e[1]*s)%5)}
  14. j=t.map{|e|f[e]}.find_index(rev)
  15. t[0..j-1].each{|e|f[e]=rev} if j&&j>0
  16. end
  17. end
  18. puts f.map{|e|"RW"[e]}*""
  19. end
Success #stdin #stdout 0.05s 9768KB
stdin
A
F
J
AA
IC
FC
AE
GJ
CCB
BEF
JGD
IHCC
AIDD
IJFA
ABCDE
ICEBA
DAHHD
GJIJC
FGHIJ
HJICGA
IBCIGC
BIJJJB
DCBCHGD
JEABDHD
JHFADHE
HDGGDBIB
IIDIHCCG
BBFBICIE
HJHCFBJGG
AJJIEAAII
AIDHJFGAE
FGBGHCBHJJ
EFIGIGGHHJ
HGAFDIFFFF
AABBCCDDEE
ABCDEFGHIJ
FGHIJABCDE
stdout
RWWWWRRRRR
WWWWWWWRRW
WWWWWWRRWW
WWWWWWWRWW
WWRWWRRRWW
WWRWWWWRRW
RWWWRRRRRR
WWWWWWWWWW
WRWWWRWWWR
WRWWRWWRRR
WWWRWWWWWW
WWWWWRWWWW
RWWWWRRWWR
RWWWWWWWWW
RRRRRRRRRR
RRRWRRRRRR
RWWWWRWWWR
WWRWWWWWRR
WWWWWWWWRR
RWRWWRRRRR
WRWWWWWWWW
WWWWWWRWWW
WRWWWWWRRW
RRWWRRRWRR
RWWRRRRRWW
WWWWWWWWWW
WWWRWRRWWW
WRRWRRRWWW
WRRWWWWRRW
RWWWRWWWWR
WWWRRWWWWW
WWRWWWWRRW
WWWWRRRWWR
RWWRWRRRRW
WWWWWWWWWW
RRRRRWWWWW
RRRRRRRRRR