写的是找最高然后踢出,86分第六个点WA,求调整
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
string s;
int k,mn=10,place,len,ans;
struct lane{
int front,num,back;
}num[255];
int main()
{
cin>>s;
getchar(); scanf("%d",&k);
for(int i=0 ; s[i]!='\0' ; i++) {
num[i+1].num=s[i]-'0';
num[i+1].front=i;
num[i+1].back=i+2;
len=i+1;
}
num[0].num=0; num[0].back=1; num[len+1].num=0; num[len+1].front=len;
for(int i=1 ; i<=len ;) {
if(num[num[i].front].num < num[i].num && k > 0 && (num[num[i].back].num <= num[i].num || num[num[i].back].num < num[i].num )) {
num[num[i].front].back=num[i].back;
num[num[i].back].front=num[i].front;
k--; i=num[i].front;
}
else i=num[i].back;
}
for(int i=num[0].back ; i<=len ; i=num[i].back) ans=ans*10+num[i].num;
cout<<ans;
return 0;
}