100 atcoder#ABC223B. [ABC223B] String Shifting
[ABC223B] String Shifting
Score : points
Problem Statement
On a non-empty string, a left shift moves the first character to the end of the string, and a right shift moves the last character to the beginning of the string.
For example, a left shift on abcde
results in bcdea
, and two right shifts on abcde
result in deabc
.
You are given a non-empty consisting of lowercase English letters. Among the strings that can be obtained by performing zero or more left shifts and zero or more right shifts on , find the lexicographically smallest string and the lexicographically largest string.
What is the lexicographical order?
Simply speaking, the lexicographical order is the order in which words are listed in a dictionary. As a more formal definition, here is the algorithm to determine the lexicographical order between different strings and .
Below, let denote the -th character of . Also, if is lexicographically smaller than , we will denote that fact as ; if is lexicographically larger than , we will denote that fact as .
- Let be the smaller of the lengths of and . For each , we check whether and are the same.
- If there is an such that , let be the smallest such . Then, we compare and . If comes earlier than in alphabetical order, we determine that and quit; if comes later than , we determine that and quit.
- If there is no such that , we compare the lengths of and . If is shorter than , we determine that and quit; if is longer than , we determine that and quit.
Constraints
- consists of lowercase English letters.
- The length of is between and (inclusive).
Input
Input is given from Standard Input in the following format:
Output
Print two lines. The first line should contain , and the second line should contain . Here, and are respectively the lexicographically smallest and largest strings obtained by performing zero or more left shifts and zero or more right shifts on .
aaba
aaab
baaa
By performing shifts, we can obtain four strings: aaab
, aaba
, abaa
, baaa
. The lexicographically smallest and largest among them are aaab
and baaa
, respectively.
z
z
z
Any sequence of operations results in z
.
abracadabra
aabracadabr
racadabraab