样例的答案都是正确的,思路也没问题
import java.io.*;
public class Main
{
static String str;
static int[] index;
static int pointer=0;
public static void main(String[] args) throws IOException
{
StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw=new PrintWriter(new OutputStreamWriter(System.out));
str=bf.readLine();
st.nextToken();
int k=str.length()-(int)st.nval;
index=new int[k];
find(0);
for(int i=0,flag=0;i<k;i++)
{
if(str.charAt(index[i])=='0'&&flag==0&&i<k-1)
continue;
pw.print(str.charAt(index[i]));
flag=1;
}
pw.flush();
}
public static void find(int start)
{
if(pointer==index.length)
return;
int flag=0;
for(char i='0';i<='9'&&flag==0;i++)
{
for(int j=start;j<str.length();j++)
{
if(str.charAt(j)==i)
{
if(str.length()-j<index.length-pointer)
break;
else
{
index[pointer++]=j;
find(j+1);
flag=1;
break;
}
}
}
}
}
}