#5102. Problem 2. Feeding the Cows

0

Problem 2. Feeding the Cows

Problem 2. Feeding the Cows

USACO 2022 December Contest, Bronze

Farmer John has NN (1N1051 \le {N} \le {10^5}) cows, the breed of each being either a Guernsey or a Holstein. They have lined up horizontally with the cows occupying positions labeled from 1N1\dots N.

Since all the cows are hungry, FJ decides to plant grassy patches on some of the positions 1N1\dots N. Guernseys and Holsteins prefer different types of grass, so if Farmer John decides to plant grass at some location, he must choose to planting either Guernsey-preferred grass or Holstein-preferred grass --- he cannot plant both at the same location. Each patch of grass planted can feed an unlimited number of cows of the appropriate breed.

Each cow is willing to move a maximum of KK (0KN10 \le {K} \le N-1) positions to reach a patch. Find the minimum number of patches needed to feed all the cows. Also, print a configuration of patches that uses the minimum amount of patches needed to feed the cows. Any configuration that satisfies the above conditions will be considered correct.

INPUT FORMAT (input arrives from the terminal / stdin):

Each input contains TT test cases, each describing an arrangement of cows. The first line of input contains TT (1T101 \le T \le 10). Each of the TT test cases follow.

Each test case starts with a line containing NN and KK. The next line will contain a string of length NN, where each character denotes the breed of the iith cow (G meaning Guernsey and H meaning Holstein).

OUTPUT FORMAT (print output to the terminal / stdout):

For each of the TT test cases, please write two lines of output. For the first line, print the minimum number of patches needed to feed the cows. For the second line, print a string of length NN that describes a configuration that feeds all the cows with the minimum number of patches. The iith character, describing the iith position, should be a '.' if there is no patch, a 'G' if there is a patch that feeds Guernseys, and a 'H' if it feeds Holsteins. Any valid configuration will be accepted.

SAMPLE INPUT:


6
5 0
GHHGG
5 1
GHHGG
5 2
GHHGG
5 3
GHHGG
5 4
GHHGG
2 1
GH

SAMPLE OUTPUT:


5
GHHGG
3
.GH.G
2
..GH.
2
...GH
2
...HG
2
HG

Note that for some test cases, there are multiple acceptable configurations that manage to feed all cows while using the minimum number of patches. For example, in the fourth test case, another acceptable answer would be:


.GH..

This corresponds to placing a patch feeding Guernseys on the 2nd position and a patch feeding Holsteins on the third position. This uses the optimal number of patches and ensures that all cows are within 3 positions of a patch they prefer.

SCORING: Inputs 2 through 4 have N10N \le 10. Inputs 5 through 8 have N40N \le 40. Inputs 9 through 12 have N105N \le 10^5.

Problem credits: Mythreya Dharani