atcoder#AGC022A. [AGC022A] Diverse Word
[AGC022A] Diverse Word
Score : points
Problem Statement
Gotou just received a dictionary. However, he doesn't recognize the language used in the dictionary. He did some analysis on the dictionary and realizes that the dictionary contains all possible diverse words in lexicographical order.
A word is called diverse if and only if it is a nonempty string of English lowercase letters and all letters in the word are distinct. For example, atcoder
, zscoder
and agc
are diverse words while gotou
and connect
aren't diverse words.
Given a diverse word , determine the next word that appears after in the dictionary, i.e. the lexicographically smallest diverse word that is lexicographically larger than , or determine that it doesn't exist.
Let and be two distinct strings. is lexicographically larger than if and only if is a prefix of or where is the smallest integer such that .
Constraints
- is a diverse word.
Input
Input is given from Standard Input in the following format:
Output
Print the next word that appears after in the dictionary, or -1
if it doesn't exist.
atcoder
atcoderb
atcoderb
is the lexicographically smallest diverse word that is lexicographically larger than atcoder
. Note that atcoderb
is lexicographically smaller than b
.
abc
abcd
zyxwvutsrqponmlkjihgfedcba
-1
This is the lexicographically largest diverse word, so the answer is -1
.
abcdefghijklmnopqrstuvwzyx
abcdefghijklmnopqrstuvx