#include <iostream>
#include <string>
#include <deque>
using namespace std;
string optimal_binary(int n, int k, const string &s) {
deque<char> stack;
int remove_count = n - k;
int turn = 0; // 0: 小红删0,1: 小紫删1
for (int i = 0; i < n; ++i) {
char c = s[i];
while (!stack.empty() && remove_count > 0) {
char top = stack.back();
if (turn == 0 && top == '0') {
stack.pop_back();
remove_count--;
turn ^= 1;
} else if (turn == 1 && top == '1') {
stack.pop_back();
remove_count--;
turn ^= 1;
} else {
break;
}
}
stack.push_back(c);
}
// 如果还有剩余删除次数,继续从右向左删除
int i = stack.size() - 1;
while (remove_count > 0 && i >= 0) {
if (turn == 0) {
// 小红删0
while (i >= 0 && stack[i] != '0') i--;
if (i >= 0) {
stack.erase(stack.begin() + i);
remove_count--;
turn ^= 1;
i = stack.size() - 1;
}
} else {
// 小紫删1
while (i >= 0 && stack[i] != '1') i--;
if (i >= 0) {
stack.erase(stack.begin() + i);
remove_count--;
turn ^= 1;
i = stack.size() - 1;
}
}
}
// 取前 k 个字符作为结果
string result;
for (int i = 0; i < k; ++i) {
result += stack[i];
}
return result;
}
int main() {
int n, k;
cin >> n >> k;
string s;
cin >> s;
string ans = optimal_binary(n, k, s);
cout << ans << endl;
return 0;
}
#include <iostream>
#include <deque>
#include <vector>
#include <string>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
string s;
cin >> s;
int m = n - k;
deque<int> q0, q1;
vector<bool> deleted(n, false);
for (int i = 0; i < n; i++) {
if (s[i] == '0') {
q0.push_back(i);
} else {
q1.push_back(i);
}
}
for (int i = 0; i < m; i++) {
if (i % 2 == 0) {
if (!q0.empty()) {
int idx = q0.front();
q0.pop_front();
deleted[idx] = true;
} else {
int idx = q1.front();
q1.pop_front();
deleted[idx] = true;
}
} else {
if (!q1.empty()) {
int idx = q1.front();
q1.pop_front();
deleted[idx] = true;
} else {
int idx = q0.front();
q0.pop_front();
deleted[idx] = true;
}
}
}
string result;
for (int i = 0; i < n; i++) {
if (!deleted[i]) {
result += s[i];
}
}
cout << result << endl;
return 0;
}
from collections import deque
def main():
n, k = map(int, input().split())
s = input().strip()
m = n - k
q0 = deque()
q1 = deque()
deleted = [False] * n
for i in range(n):
if s[i] == '0':
q0.append(i)
else:
q1.append(i)
for i in range(m):
if i % 2 == 0:
if q0:
idx = q0.popleft()
deleted[idx] = True
elif q1:
idx = q1.popleft()
deleted[idx] = True
else:
if q1:
idx = q1.popleft()
deleted[idx] = True
elif q0:
idx = q0.popleft()
deleted[idx] = True
result = ''.join(s[i] for i in range(n) if not deleted[i])
print(result)
if __name__ == "__main__":
main()