#include<iostream>
using namespace std;
int n;
string str,ans="9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
string smaller(string str,string str2){
if(str.length()<str2.length())return str;
if(str.length()>str2.length())return str2;
if(str.compare(str2)>0)return str2;
else return str;
}
void dfs(int x,string strstr){
if(x>=n){
ans=smaller(ans,strstr);
return;
}
for(int i=0;i<strstr.length();i++){
string tmp=strstr;
str.erase(i,1);
dfs(x+1,str);
str=tmp;
}
}
int main(){
cin>>str>>n;
if(str.length()==n){cout<<"0";return 0;}
dfs(0,str);
while(ans[0]=='0'&&ans.length()>1)ans.erase(0,1);
cout<<ans;
return 0;
}
思路非常非常简单,往死里搜,比较字符串大小,连高精都没用。怎么用深搜且避免超时?求助大神!