- F= 
- ->b{s=->l,w=p{c,*x=l.map &:dup 
- v=[1,3,3,5,9,0]['PBNRQ'.index(c[y=w||c.index(?L)])||5] 
- w&&c[y]=?X 
- (n=x[0])?(m=[] 
- [y-1,y,y+1].map{|z|(z==y)^(n[z]>?.)&&m<<s[x,z]} 
- q,r=m.max_by{|m|m ?m[0]:0} 
- q&&[q+v,c+r]):[v,c]} 
- s[b.lines][1]} 
-   
- require 'minitest/autorun' 
-   
- describe F do 
-   def test_case_1 
-     input = <<-EOS 
- ----L--- 
- -----P-- 
- ------P- 
- --R--P-Q 
- ----P-P- 
- ---P-P-P 
- --P-N--- 
- -P------ 
- EOS 
-   
-     F[input].must_equal <<-EOS 
- ----L--- 
- -----X-- 
- ------X- 
- --R--P-X 
- ----P-X- 
- ---P-X-P 
- --P-X--- 
- -P--X--- 
- EOS 
-   end 
-   
-   def test_case_2 
-     input = <<-EOS 
- --L----- 
- -P------ 
- P------- 
- -P------ 
- P--Q---- 
- -P------ 
- P------- 
- -P------ 
- EOS 
-   
-     F[input].must_equal <<-EOS 
- --L----- 
- -PX----- 
- P-X----- 
- -PX----- 
- P--X---- 
- -P-X---- 
- P--X---- 
- -P-X---- 
- EOS 
-   end 
-   
- end 
-   
				Rj0KLT5ie3M9LT5sLHc9cHtjLCp4PWwubWFwICY6ZHVwCnY9WzEsMywzLDUsOSwwXVsnUEJOUlEnLmluZGV4KGNbeT13fHxjLmluZGV4KD9MKV0pfHw1XQp3JiZjW3ldPT9YCihuPXhbMF0pPyhtPVtdClt5LTEseSx5KzFdLm1hcHt8enwoej09eSleKG5bel0+Py4pJiZtPDxzW3gsel19CnEscj1tLm1heF9ieXt8bXxtID9tWzBdOjB9CnEmJltxK3YsYytyXSk6W3YsY119CnNbYi5saW5lc11bMV19CgpyZXF1aXJlICdtaW5pdGVzdC9hdXRvcnVuJwoKZGVzY3JpYmUgRiBkbwogIGRlZiB0ZXN0X2Nhc2VfMQogICAgaW5wdXQgPSA8PC1FT1MKLS0tLUwtLS0KLS0tLS1QLS0KLS0tLS0tUC0KLS1SLS1QLVEKLS0tLVAtUC0KLS0tUC1QLVAKLS1QLU4tLS0KLVAtLS0tLS0KRU9TCgogICAgRltpbnB1dF0ubXVzdF9lcXVhbCA8PC1FT1MKLS0tLUwtLS0KLS0tLS1YLS0KLS0tLS0tWC0KLS1SLS1QLVgKLS0tLVAtWC0KLS0tUC1YLVAKLS1QLVgtLS0KLVAtLVgtLS0KRU9TCiAgZW5kCgogIGRlZiB0ZXN0X2Nhc2VfMgogICAgaW5wdXQgPSA8PC1FT1MKLS1MLS0tLS0KLVAtLS0tLS0KUC0tLS0tLS0KLVAtLS0tLS0KUC0tUS0tLS0KLVAtLS0tLS0KUC0tLS0tLS0KLVAtLS0tLS0KRU9TCgogICAgRltpbnB1dF0ubXVzdF9lcXVhbCA8PC1FT1MKLS1MLS0tLS0KLVBYLS0tLS0KUC1YLS0tLS0KLVBYLS0tLS0KUC0tWC0tLS0KLVAtWC0tLS0KUC0tWC0tLS0KLVAtWC0tLS0KRU9TCiAgZW5kCgplbmQK