require 'minitest/autorun'
F=->s{v=->s{(0...s.size).map{|i|(i+1)*(s[i].ord-64)}.inject :+}
r="#{s} DOES NOT BALANCE"
(0...s.size).map{|i|b,a=s[0...i],s[i+1..-1]
v[b.reverse]==v[a]&&r=b+" #{s[i]} "+a}
r}
describe F do
def test_cases
assert_equal 'S T EAD', F['STEAD']
assert_equal 'CONSUBST A NTIATION', F['CONSUBSTANTIATION']
assert_equal 'WRO N GHEADED', F['WRONGHEADED']
assert_equal 'UNINTELL I GIBILITY', F['UNINTELLIGIBILITY']
assert_equal 'SUPERGLUE DOES NOT BALANCE', F['SUPERGLUE']
end
end
cmVxdWlyZSAnbWluaXRlc3QvYXV0b3J1bicKCkY9LT5ze3Y9LT5zeygwLi4ucy5zaXplKS5tYXB7fGl8KGkrMSkqKHNbaV0ub3JkLTY0KX0uaW5qZWN0IDorfQpyPSIje3N9IERPRVMgTk9UIEJBTEFOQ0UiCigwLi4ucy5zaXplKS5tYXB7fGl8YixhPXNbMC4uLmldLHNbaSsxLi4tMV0KdltiLnJldmVyc2VdPT12W2FdJiZyPWIrIiAje3NbaV19ICIrYX0Kcn0KCmRlc2NyaWJlIEYgZG8KICBkZWYgdGVzdF9jYXNlcwogICAgYXNzZXJ0X2VxdWFsICdTIFQgRUFEJywgRlsnU1RFQUQnXQogICAgYXNzZXJ0X2VxdWFsICdDT05TVUJTVCBBIE5USUFUSU9OJywgRlsnQ09OU1VCU1RBTlRJQVRJT04nXQogICAgYXNzZXJ0X2VxdWFsICdXUk8gTiBHSEVBREVEJywgRlsnV1JPTkdIRUFERUQnXQogICAgYXNzZXJ0X2VxdWFsICdVTklOVEVMTCBJIEdJQklMSVRZJywgRlsnVU5JTlRFTExJR0lCSUxJVFknXQogICAgYXNzZXJ0X2VxdWFsICdTVVBFUkdMVUUgRE9FUyBOT1QgQkFMQU5DRScsIEZbJ1NVUEVSR0xVRSddCiAgZW5kCmVuZA==