View Code of Problem 3917

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		int t =in.nextInt();
		for(int i =0;i<t;i++) {
			String n=in.next();
			char[] max = n.toCharArray();
			char[] min = n.toCharArray();
			int k =in.nextInt();
			System.out.println(getmin(min,0,k)+" "+getmax(max,0,k));
		}
	}
	public static String getmin(char[] num,int loc,int k) {
		if(k==1) {
			int minloc = loc;
			for(int i =num.length-1;i>=loc;i--) {
				if(num[minloc]>num[i]) {
					minloc=i;
				}
			}
			if(minloc == loc) {
				if(loc+1==num.length) {
					StringBuffer sb=new StringBuffer();
					return sb.append(num).toString();
				}
				return getmin(num,loc+1,k);
			}
			char temp = num[loc];
			num[loc]=num[minloc];
			num[minloc]=temp;
			StringBuffer sb=new StringBuffer();
			return sb.append(num).toString();
		}else {
			ArrayList<Integer> allminloc = new ArrayList<Integer>();
			int minloc = loc;
			for(int i =num.length-1;i>=loc;i--) {
				if(num[minloc]>num[i]) {
					minloc=i;
				}
			}
			if(minloc == loc) {
				if(loc+1==num.length) {
					StringBuffer sb=new StringBuffer();
					return sb.append(num).toString();
				}
				return getmin(num,loc+1,k);
			}else {
				for(int i =num.length-1;i>=loc;i--) {
					if(num[minloc]==num[i]) {
						allminloc.add(i);
					}
				}
				/*System.out.print("可选位置为");
				for(int i :allminloc) {
					System.out.print(i+" ");
				}
				System.out.println(" ");*/
				StringBuffer sb=new StringBuffer();
				String minnum=sb.append(num).toString();
				char[] copy = num.clone();
				for(int i :allminloc) {
					char temp = num[loc];
					num[loc]=num[i];
					num[i]=temp;
					
					/*System.out.println(loc+"交换"+i);
					StringBuffer sb1=new StringBuffer();
					System.out.println(sb1.append(num).toString());*/
					
					String newnum=getmin(num,loc+1,k-1);
					if(minnum.compareTo(newnum)>0) {
						minnum=newnum;
					}
					num=copy.clone();
				}
				return minnum;
			}
		}
	}
	public static String getmax(char[] num,int loc,int k) {
		if(k==1) {
			int maxloc = loc;
			for(int i =num.length-1;i>=loc;i--) {
				if(num[maxloc]<num[i]) {
					maxloc=i;
				}
			}
			if(maxloc == loc) {
				if(loc+1==num.length) {
					StringBuffer sb=new StringBuffer();
					return sb.append(num).toString();
				}
				return getmax(num,loc+1,k);
			}
			char temp = num[loc];
			num[loc]=num[maxloc];
			num[maxloc]=temp;
			StringBuffer sb=new StringBuffer();
			return sb.append(num).toString();
		}else {
			ArrayList<Integer> allmaxloc = new ArrayList<Integer>();
			int maxloc = loc;
			for(int i =num.length-1;i>=loc;i--) {
				if(num[maxloc]<num[i]) {
					maxloc=i;
				}
			}
			if(maxloc == loc) {
				if(loc+1==num.length) {
					StringBuffer sb=new StringBuffer();
					return sb.append(num).toString();
				}
				return getmax(num,loc+1,k);
			}else {
				for(int i =num.length-1;i>=loc;i--) {
					if(num[maxloc]==num[i]) {
						allmaxloc.add(i);
					}
				}
				StringBuffer sb=new StringBuffer();
				String maxnum=sb.append(num).toString();
				char[] copy = num.clone();
				for(int i :allmaxloc) {
					char temp = num[loc];
					num[loc]=num[i];
					num[i]=temp;
					
					String newnum=getmax(num,loc+1,k-1);
					if(maxnum.compareTo(newnum)<0) {						
						maxnum=newnum;
					}
					num=copy.clone();
				}
				return maxnum;
			}
		}
	}
}

/*
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                    ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                     ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                      ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                       ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                        ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                         ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                          ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                           ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                            ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                             ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                              ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                               ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                                ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                                 ^
Main.java:54: error: unmappable character for encoding ASCII
				/*System.out.print("???????????????");
				                                  ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                          ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                           ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                            ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                             ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                              ^
Main.java:67: error: unmappable character for encoding ASCII
					/*System.out.println(loc+"??????"+i);
					                               ^
21 errors
*/

Double click to view unformatted code.


Back to problem 3917