Q. Tìm số tối thiểu


Submit solution

Points: 50 (partial)
Time limit: 1.0s
Memory limit: 256M

Problem type

Cho số nguyên dương S gồm n chữ số (không có chữ số 0 thừa ở tận cùng bên trái) và số nguyên k. Hãy tìm cách thay thế tối đa k chữ số bất kỳ trong S để thu được số nhỏ nhất có n chữ số và số thu được cũng không có chữ số 0 ở tận cùng bên trái.

Chú ý

Một số có chữ số 0 thừa ở tận cùng bên trái nếu nó có ít nhất hai chữ số và chữ số đầu tiên của nó là 0.
Ví dụ: các số 00, 00069, 0101 là không hợp lệ; còn các số 0, 3000, 1010 là hợp lệ.

Đầu vào
  • Dòng đầu chứa số nguyên T là số bộ dữ liệu vào (1 ≤ T ≤ 100).
  • Tiếp theo là T bộ dữ liệu, mỗi bộ gồm hai dòng:
    • Dòng thứ nhất chứa hai số nguyên nk cách nhau bởi dấu cách (1 ≤ n ≤ 2×10⁵, 0 ≤ k ≤ n).
    • Dòng thứ hai chứa chuỗi S gồm n chữ số (không có số 0 ở đầu).
Đầu ra

In ra số S mới gồm n chữ số sau khi đã thay không quá k chữ số sao cho số đó là nhỏ nhất và không có số 0 ở đầu (trừ trường hợp n = 1).

Ví dụ
Input:
3
5 3
51528
3 2
102
1 1
1

Output:
10028
100
0

Giải thích ví dụ

  • Test 1: S = 51528, n = 5, k = 3. Ta có thể thay 3 chữ số để được số nhỏ nhất là 10028. (Thay '5'→'1', '1'→'0', '5'→'0')
  • Test 2: S = 102, n = 3, k = 2. Có thể thay '1'→'1' (giữ nguyên), '0'→'0' (giữ nguyên), '2'→'0' ⇒ kết quả: 100
  • Test 3: S = 1, n = 1, k = 1. Duy nhất 1 chữ số, ta có thể thay thành 0 ⇒ kết quả là 0.

Comments

There are no comments at the moment.