#P1522. 【字节跳动】2024-10-13-第二题-最小字典序

【字节跳动】2024-10-13-第二题-最小字典序

题目描述

薯条哥有一个长为nn的只由0011组成的串ss,他需要恰好对ss执行kk次交换操作。薯条哥想要使得ss的字典序最小,请你帮帮他求出最小字典序的ss吧。

选择两个不同的下标并交换这两个位置上的值称为一次交换,使用数学的方式描述,即选择iij(1i<jn)j(1\le i<j\le n)并交换sis_isjs_j。 当且仅当满足以下条件之一时,字符串aa按字典顺序小于字符串bb:

1. aabb的前缀,但是aba\ne b

2. 对于aabb的第一个不相同的位置,字符串aa中的字母在字母表中的位置前于bb中相应的字字母。

输入描述

每个测试文件均包含多组测试数据。

第一行输入一个整数T(1T104)T(1\le T\le 10^4)代表数据组数,每组测试数据描述如下:

第一行输入两个整数n,k(2n2×105,1k109)n,k(2\le n\le 2×10^5,1\le k\le 10^9)代表ss的长度和操作次数。

第二行输入一个长为nn,且只由'0''1'组成的字符串ss。 除此之外,保证所有的nn之和不超过2×1052×10^5

输出描述

对于每一组测试数据,在一行上输出一个长度为nn,且只由0011组成的字符串,代表进行了恰好kk次操作后,字典序最小的ss

样例

输入

2
6 2
110000
2 10
11

输出

000011
11

样例解释

对于第一组测试数据,需要恰好进行k=2k=2次操作,依次交换s1,s6s_1,s_6s2,s5s_2,s_5