public class FifteenPuzzle {
//---------------------------------------------------
public static boolean solvable15Puzzle(int[][] b) {
int count = 0;
int i = 0;
int d = -1;
int a[] = new int[b.length * b[0].length];
//while (i < a.length) {
for (int j = 0; j < b.length; j++) {
for (int k = 0; k < b[0].length; k++) {
if (b[j][k] != 0) {
a[i] = b[j][k];
i++;
} else {
d = j + 1;
}
}
}
//}
for (int j = 0; j < a.length; j++) {
// System.out.println("a[" + j + "] = " + a[j]);
}
for (int m = 0; m < a.length; m++) {
for (int n = m + 1; n < a.length; n++) {
if (a[m] > a[n] && a[m] != 0 && a[n] != 0) count++;
}
}
// System.out.println("count = " + count);
if ((d + count) % 2 != 0) 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=1, CM=36, ST=66, KY=1132, 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 ;
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 ;
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 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
|