CF1363F Rotating Substrings
Description
You are given two strings $ s $ and $ t $ , each of length $ n $ and consisting of lowercase Latin alphabets. You want to make $ s $ equal to $ t $ .
You can perform the following operation on $ s $ any number of times to achieve it —
- Choose any substring of $ s $ and rotate it clockwise once, that is, if the selected substring is $ s[l,l+1...r] $ , then it becomes $ s[r,l,l + 1 ... r - 1] $ . All the remaining characters of $ s $ stay in their position. For example, on rotating the substring $ [2,4] $ , string "abcde" becomes "adbce".
A string $ a $ is a substring of a string $ b $ if $ a $ can be obtained from $ b $ by deletion of several (possibly, zero or all) characters from the beginning and several (possibly, zero or all) characters from the end.
Find the minimum number of operations required to convert $ s $ to $ t $ , or determine that it's impossible.
Input Format
N/A
Output Format
N/A
Explanation/Hint
For the $ 1 $ -st test case, since $ s $ and $ t $ are equal, you don't need to apply any operation.
For the $ 2 $ -nd test case, you only need to apply one operation on the entire string ab to convert it to ba.
For the $ 3 $ -rd test case, you only need to apply one operation on the entire string abc to convert it to cab.
For the $ 4 $ -th test case, you need to apply the operation twice: first on the entire string abc to convert it to cab and then on the substring of length $ 2 $ beginning at the second character to convert it to cba.
For the $ 5 $ -th test case, you only need to apply one operation on the entire string abab to convert it to baba.
For the $ 6 $ -th test case, it is not possible to convert string $ s $ to $ t $ .