Do Bessie chán chường với chuỗi văn bản thông thường chỉ có các ký tự 'C', 'O', và 'W', Nông dân John đã cho cô \(Q\) chuỗi mới (\(1 \leq Q \leq 100\)), trong đó các ký tự chỉ có thể là 'M' và 'O'. Từ yêu thích của Bessie với các ký tự 'M' và 'O' là "MOO", vì vậy cô muốn biến đổi từng chuỗi trong số \(Q\) chuỗi thành "MOO" bằng các thao tác sau:
- Thay thế ký tự đầu tiên hoặc ký tự cuối cùng bằng ký tự ngược lại của nó (ví dụ 'M' thành 'O' và 'O' thành 'M').
- Xóa ký tự đầu tiên hoặc ký tự cuối cùng.
Rất tiếc, Bessie rất lười biếng và không muốn thực hiện nhiều thao tác hơn là cần thiết. Vì vậy, với mỗi chuỗi, hãy giúp cô xác định số lượng thao tác tối thiểu cần thiết để biến đổi thành "MOO" hoặc xuất \(-1\) nếu điều này là không thể.
Input
- Dòng đầu tiên chứa giá trị \(Q\).
- \(Q\) dòng tiếp theo của đầu vào mỗi dòng gồm một chuỗi, mỗi ký tự trong đó là 'M' hoặc 'O'. Mỗi chuỗi có từ 1 đến 100 ký tự.
Output
- In ra kết quả cho mỗi chuỗi đầu vào trên một dòng riêng biệt.
Scoring
- Subtask 1: Mỗi chuỗi có độ dài tối đa là \(3\).
- Subtask 2: Không có ràng buộc gì thêm.
Example
Test 1
Input
3
MOMMOM
MMO
MOO
Output
4
-1
0
Note
Một chuỗi các thao tác biến đổi chuỗi đầu tiên thành "MOO" là:
- Thay thế ký tự cuối cùng bằng 'O' (thao tác 1)
- Xóa ký tự đầu tiên (thao tác 2)
- Xóa ký tự đầu tiên (thao tác 2)
- Xóa ký tự đầu tiên (thao tác 2)
Chuỗi thứ hai không thể biến đổi thành "MOO". Chuỗi thứ ba đã sẵn là "MOO", vì vậy không cần thực hiện bất kỳ thao tác nào.
Bình luận
Cố gắng nếu có thể!
Chúng ta có thể nhận thấy rằng:
⇒ Ta chỉ cần chọn \(3\) kí tự liên tiếp thoả mãn điều kiện: kí tự ở giữa là '\(O\)'
⇒ Nếu không tìm được kí tự nào là \('0'\) từ \(s_2 \rightarrow s_{n - 1}\) thì in ra \(-1\)
⇒ Nếu có, ta lấy tìm \(min(change(i))\) (\(∀\) \(2 \leq i \leq n - 1; s_i =\) \('O'\))
Code