Informática – Nivel Iniciante – Semana 4

por

Distribuição de Strings

Phoenix tem uma string $$s$$ composta por letras latinas minúsculas. Ele quer distribuir todas as letras da string em $$k$$ strings $$a_1, a_2, …, a_k$$, não vazias, tal que todas as letras da string $$s$$ sejam distribuidas. As strings $$a_i$$ não precisam ser substrings de $$s$$. Phoenix pode distruibuir as letras de $$s$$ e rearranjá-las do jeito que ele quiser em cada uma das strings $$a_i$$.

Por exemplo, se $$s = baba$$ e $$k = 2$$, Phoenix pode distribuir as letras da string de diversas maneiras, como:

  • $$ba$$ e $$ba$$
  • $$a$$ e $$abb$$
  • $$ab$$ e $$ab$$
  • $$aa$$ e $$bb$$

Mas essas maneiras de distribuição são inválidas:

  • $$baa$$ e $$ba$$
  • $$b$$ e $$ba$$
  • $$baba$$ e uma string vazia ($$a_i$$ deve ser não vazia)

Phoenix deseja distribuir as letras da string $$s$$ em $$k$$ strings $$a_1, a_2, …, a_k$$ de modo a minimizar a string lexicograficamente máxima entre todas elas, ou seja, minimizar $$max(a_1, a_2, …, a_k)$$. Ajude-o a encontrar a distribuição ótima e imprima o menor valor possível de $$max(a_1, a_2, …, a_k)$$.

Uma string $$x$$ é lexicograficamente menor que uma string $$y$$ se $$x$$ é um prefixo de $$y$$ e $$x \neq y$$, ou existe algum índice $$i$$ tal que $$x_i < y_i$$ e para todo $$j, (1 \leq j < i)$$, $$x_j = y_j$$.

Entrada:

A entrada consiste em diversos casos de teste. A primeira linha contém um intero $$t$$, o número de casos de teste. Cada caso de teste possui duas linhas.

A primeira linha de cada caso de teste consiste em dois inteiros $$n$$ e $$k$$, o tamanho da string $$s$$ e o número de strings não vazias em que Phoenix quer distribuir as letras de $$s$$, respectivamente.

A segunda linha de cada caso de teste tem a string $$s$$ de tamanho $$n$$, que é formada por letras latinas minúsculas.

Saída

Imprima $$t$$ strings, a i-ésima deve ser o valor mínimo de $$max(a_1, a_2, …, a_k)$$ para o i-ésimo caso de teste.

Restrições:

  • $$1 \leq k \leq n \leq 10^5$$
  • $$1 \leq t \leq 10^3$$

Exemplos:

ENTRADA

SAÍDA

6
4 2
baba
5 2
baacb
5 3
baacb
5 3
aaaaa
6 4
aaxxzz
7 1
phoenix
ab
abbc
b
aa
x
ehinopx

Use esse link para submeter a sua solução.