use proconio::input; use proconio::marker::Chars; fn main () { input! { h: usize, _: usize, s: [Chars; h], t: [Chars; h], } let s_rev = s.iter() .rev() .map(|c| { c.iter().rev().cloned().collect::>() }) .collect::>(); let t = t.iter() .map(|v| { v.iter().map(|&c| if c == '.' {'#'} else {'.'}).collect::>() }) .collect::>(); match (s, s_rev, t) { (s, s_rev, t) if (s == t) & (s_rev == t) => { println!("{}", 2.641632560655154); }, (s, _, t) if s == t => { println!("{}", 3.531740190461733); }, (_, s_rev, t) if s_rev == t => { println!("{}", 3.128936827211877); }, (_, _, _) => { println!("{}", -1); }, } }