CF1493C.K-beautiful Strings
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a string s consisting of lowercase English letters and a number k . Let's call a string consisting of lowercase English letters beautiful if the number of occurrences of each letter in that string is divisible by k . You are asked to find the lexicographically smallest beautiful string of length n , which is lexicographically greater or equal to string s . If such a string does not exist, output −1 .
A string a is lexicographically smaller than a string b if and only if one of the following holds:
- a is a prefix of b , but a=b ;
- in the first position where a and b differ, the string a has a letter that appears earlier in the alphabet than the corresponding letter in b .
输入格式
The first line contains a single integer T ( 1≤T≤10000 ) — the number of test cases.
The next 2⋅T lines contain the description of test cases. The description of each test case consists of two lines.
The first line of the description contains two integers n and k ( 1≤k≤n≤105 ) — the length of string s and number k respectively.
The second line contains string s consisting of lowercase English letters.
It is guaranteed that the sum of n over all test cases does not exceed 105 .
输出格式
For each test case output in a separate line lexicographically smallest beautiful string of length n , which is greater or equal to string s , or −1 if such a string does not exist.
输入输出样例
输入#1
4 4 2 abcd 3 1 abc 4 3 aaaa 9 3 abaabaaaa
输出#1
acac abc -1 abaabaaab
说明/提示
In the first test case "acac" is greater than or equal to s , and each letter appears 2 or 0 times in it, so it is beautiful.
In the second test case each letter appears 0 or 1 times in s , so s itself is the answer.
We can show that there is no suitable string in the third test case.
In the fourth test case each letter appears 0 , 3 , or 6 times in "abaabaaab". All these integers are divisible by 3 .