#include<bits/stdc++.h>
using namespace std;
int main(){
string n;
int k;
vector<int> lst;
cin>>n>>k;
int num=n.length();
for (int i=0;i<num;i++) { // Store in vector
lst.push_back(n[i]-'0');
}
int place=0;
while (k>0&&place+1<lst.size()){
if (lst[place]>lst[place+1]) {// If current is larger than next
lst.erase(lst.begin()+place);
k--;
if (place > 0) place--; // Recheck
}
else place++;
}
// Last digits
while (k>0&&!lst.empty()){
lst.pop_back();
k--;
}
// Remove leading 0, check lst empty
while(lst[0]==0&&!lst.empty()) lst.erase(lst.begin());
if (lst.empty()) cout<<0; // If lst empty
else{
for (int i:lst) {
cout<<i;
}
}
return 0;
}
[P1106] 删数问题
于 2023-12-09 16:41:11 首次发布