Codeforces Round 638 (Div. 2)
C
Phoenix and Distribution
Codeforces
1600
原题
← BD →
翻译中…

Phoenix has a string $s$ consisting of lowercase Latin letters. He wants to distribute all the letters of his string into $k$ non-empty strings $a_1, a_2, \dots, a_k$ such that every letter of $s$ goes to exactly one of the strings $a_i$. The strings $a_i$ do not need to be substrings of $s$. Phoenix can distribute letters of $s$ and rearrange the letters within each string $a_i$ however he wants.

翻译中…

For example, if $s = $ baba and $k=2$, Phoenix may distribute the letters of his string in many ways, such as:

翻译中…
  • ba and ba
  • a and abb
  • ab and ab
  • aa and bb
翻译中…

But these ways are invalid:

翻译中…
  • baa and ba
  • b and ba
  • baba and empty string ($a_i$ should be non-empty)
翻译中…

Phoenix wants to distribute the letters of his string $s$ into $k$ strings $a_1, a_2, \dots, a_k$ to minimize the lexicographically maximum string among them, i. e. minimize $max(a_1, a_2, \dots, a_k)$. Help him find the optimal distribution and print the minimal possible value of $max(a_1, a_2, \dots, a_k)$.

翻译中…

String $x$ is lexicographically less than string $y$ if either $x$ is a prefix of $y$ and $x \ne y$, or there exists an index $i$ ($1 \le i \le min(|x|, |y|))$ such that $x_i$ < $y_i$ and for every $j$ $(1 \le j \lt i)$ $x_j = y_j$. Here $|x|$ denotes the length of the string $x$.

翻译中…

Input

翻译中…

The input consists of multiple test cases. The first line contains an integer $t$ ($1 \le t \le 1000$) — the number of test cases. Each test case consists of two lines.

翻译中…

The first line of each test case consists of two integers $n$ and $k$ ($1 \le k \le n \le 10^5$) — the length of string $s$ and the number of non-empty strings, into which Phoenix wants to distribute letters of $s$, respectively.

翻译中…

The second line of each test case contains a string $s$ of length $n$ consisting only of lowercase Latin letters.

翻译中…

It is guaranteed that the sum of $n$ over all test cases is $\le 10^5$.

翻译中…

Output

翻译中…

Print $t$ answers — one per test case. The $i$-th answer should be the minimal possible value of $max(a_1, a_2, \dots, a_k)$ in the $i$-th test case.

翻译中…

Note

翻译中…

In the first test case, one optimal solution is to distribute baba into ab and ab.

翻译中…

In the second test case, one optimal solution is to distribute baacb into abbc and a.

翻译中…

In the third test case, one optimal solution is to distribute baacb into ac, ab, and b.

翻译中…

In the fourth test case, one optimal solution is to distribute aaaaa into aa, aa, and a.

翻译中…

In the fifth test case, one optimal solution is to distribute aaxxzz into az, az, x, and x.

翻译中…

In the sixth test case, one optimal solution is to distribute phoenix into ehinopx.

翻译中…

样例

Input #1
6
4 2
baba
5 2
baacb
5 3
baacb
5 3
aaaaa
6 4
aaxxzz
7 1
phoenix
Output #1
ab
abbc
b
aa
x
ehinopx
InputCopy OutputCopy
题目信息
题号
1348C
时间限制
2 s
内存限制
256 MB
标签
构造
贪心
排序
字符串

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。