java暴力解决
Sample Input
1 ABCDEFGHIJKL
11700519 ZAYEXIWOVU
3072997 SOUGHT
1234567 THEQUICKFROG
0 END
Sample Output
LKEBA
YOXUZ
GHOST
no solution
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import javax.print.DocFlavor.CHAR_ARRAY;
public class Safecracker {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Map<Integer, String> map = new HashMap<Integer, String>();
List <String> list = new ArrayList<String>();
List <String> result = new ArrayList<String>();
boolean exist = true;
int valu = input.nextInt();
String alph = input.nextLine();
while (valu != 0 && !alph.equals("END")) {
map.put(valu, alph);
char[] array = alph.toCharArray();
for (int i = array.length - 1; i > 0 ; i--) {
for (int j = 0; j < array.length ; j++) {
for (int k = 0; k < array.length ; k++) {
for (int l = 0; l < array.length ; l++) {
for (int m = 0; m < array.length; m++) {
if (i != j && i != k && i != l && i != m
&& j != k && j != l && j != m && k != l
&& k != m && l != m && m != l) {
int a = array[i] - 64;
int b = (array[j] - 64) * (array[j] - 64);
int c = (array[k] - 64) * (array[k] - 64)
* (array[k] - 64);
int d = (array[l] - 64) * (array[l] - 64)
* (array[l] - 64) * (array[l] - 64);
int e = (array[m] - 64) * (array[m] - 64)
* (array[m] - 64) * (array[m] - 64)
* (array[m] - 64);
if ((a - b + c - d + e) == valu) {
String s = (char) array[i]+ "" +(char) array[j] + (char) array[k]+ (char) array[l]+ (char) array[m] ;
list.add(s);
exist = false;
break;
}
}
}
}
}
}
}
if (exist) {
result.add("no solution");
}else {
list.sort(null);
result.add(list.get(list.size()-1));
list.clear();
}
valu = input.nextInt();
alph = input.nextLine();
exist = true;
}
for (int i = 0; i < result.size(); i++) {
System.out.println(result.get(i));
}
}
}