题库练习 Swap and Reverse
← 上一题 下一题 →

A16080 | Swap and Reverse

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a string $s$ of length $n$ consisting of lowercase English letters, and an integer $k$ . In one step you can perform any one of the two operations below:

- Pick an index $i$ ( $1 \le i \le n - 2$ ) and swap $s_{i}$ and $s_{i+2}$ .
- Pick an index $i$ ( $1 \le i \le n-k+1$ ) and reverse the order of letters formed by the range $[i,i+k-1]$ of the string. Formally, if the string currently is equal to $s_1\ldots s_{i-1}s_is_{i+1}\ldots s_{i+k-2}s_{i+k-1}s_{i+k}\ldots s_{n-1}s_n$ , change it to $s_1\ldots s_{i-1}s_{i+k-1}s_{i+k-2}\ldots s_{i+1}s_is_{i+k}\ldots s_{n-1}s_n$ .

You can make as many steps as you want (possibly, zero). Your task is to find the lexicographically smallest string you can obtain after some number of steps.

A string $a$ is lexicographically smaller than a string $b$ of the same length if and only if the following holds:

- 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$ .

输入格式

Each test contains multiple test cases. The first line contains the number of test cases $t$ ( $1 \le t \le 10^4$ ). The description of the test cases follows.

The first line of each test case contains two integers $n$ and $k$ ( $1 \le k < n \le 10^5$ ).

The second line of each test case contains the string $s$ of length $n$ consisting of lowercase English letters.

It is guaranteed that the sum of $n$ over all test cases does not exceed $10^5$ .

输出格式

For each test case, print the lexicographically smallest string after doing some (possibly, zero) steps.

输入输出样例

输入 #1
5
4 2
nima
5 3
panda
9 2
theforces
7 3
amirfar
6 4
rounds
输出 #1
aimn
aandp
ceefhorst
aafmirr
dnorsu
C++ 编辑器
输入
输出