public class FifteenPuzzle {
//---------------------------------------------------
public static boolean solvable15Puzzle(int[][] b) {
int L = 0, B = 0;
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[0].length; j++) {
int x = b[i][j];
if (x == 0) {
B = i + 1;
}
for (int l = i; l < b.length; l++) {
int k = 0;
if (l == i) {
k = j;
}
while (k < b[0].length) {
if (x > b[l][k] && b[l][k] != 0) {
L = L + 1;
}
k++;
}
}
}
}
if ((L + B) % 2 == 1) {
return false;
}
return true;
}
//---------------------------------------------------
public static void main(String[] a) {
int[][] ok = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 12, 15 },
{ 13, 14, 11, 0 } };
int[][] nok = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 15, 14, 0 } };
System.out.println(solvable15Puzzle(ok));
System.out.println(solvable15Puzzle(nok));
}
}
|
SM=0, CM=10, ST=16, KY=597, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
|