import java.util.LinkedList;
import java.util.Queue;


public class Cruz_restri {
	public static int[][] adyacentes = new int [49][8];
	public static int[][] distancia = new int [49][49];

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public Cruz_restri ()
	{
		
		adyacentes[0][0] = -1;
        adyacentes[0][1] = -1;
        adyacentes[0][2] = -1;
        adyacentes[0][3] = -1;
        adyacentes[0][4] = -1;            
        adyacentes[0][5] = -1;
        adyacentes[0][6] = -1;
        adyacentes[0][7] = -1;

   		adyacentes[1][0] = -1;
        adyacentes[1][1] = -1;
        adyacentes[1][2] = -1;
        adyacentes[1][3] = -1;
        adyacentes[1][4] = -1;            
        adyacentes[1][5] = -1;
        adyacentes[1][6] = -1;
        adyacentes[1][7] = -1;
        
		adyacentes[2][0] = -1;
        adyacentes[2][1] = -1;
        adyacentes[2][2] = -1;
        adyacentes[2][3] = -1;
        adyacentes[2][4] = 3;            
        adyacentes[2][5] = -1;
        adyacentes[2][6] = 9;
        adyacentes[2][7] = 10;
        
        adyacentes[3][0] = -1;
        adyacentes[3][1] = -1;
        adyacentes[3][2] = -1;
        adyacentes[3][3] = 2;
        adyacentes[3][4] = 4;            
        adyacentes[3][5] = -1;
        adyacentes[3][6] = 10;
        adyacentes[3][7] = -1;
        
        adyacentes[4][0] = -1;
        adyacentes[4][1] = -1;
        adyacentes[4][2] = -1;
        adyacentes[4][3] = 3;
        adyacentes[4][4] = -1;            
        adyacentes[4][5] = 10;
        adyacentes[4][6] = 11;
        adyacentes[4][7] = -1;
        
        adyacentes[5][0] = -1;
        adyacentes[5][1] = -1;
        adyacentes[5][2] = -1;
        adyacentes[5][3] = -1;
        adyacentes[5][4] = -1;            
        adyacentes[5][5] = -1;
        adyacentes[5][6] = -1;
        adyacentes[5][7] = -1;
        
        adyacentes[6][0] = -1;
        adyacentes[6][1] = -1;
        adyacentes[6][2] = -1;
        adyacentes[6][3] = -1;
        adyacentes[6][4] = -1;            
        adyacentes[6][5] = -1;
        adyacentes[6][6] = -1;
        adyacentes[6][7] = -1;
        
        
        adyacentes[7][0] = -1;
        adyacentes[7][1] = -1;
        adyacentes[7][2] = -1;
        adyacentes[7][3] = -1;
        adyacentes[7][4] = -1;            
        adyacentes[7][5] = -1;
        adyacentes[7][6] = -1;
        adyacentes[7][7] = -1;
        
        adyacentes[8][0] = -1;
        adyacentes[8][1] = -1;
        adyacentes[8][2] = -1;
        adyacentes[8][3] = -1;
        adyacentes[8][4] = -1;            
        adyacentes[8][5] = -1;
        adyacentes[8][6] = -1;
        adyacentes[8][7] = -1;
        
        adyacentes[9][0] = -1;
        adyacentes[9][1] = 2;
        adyacentes[9][2] = -1;
        adyacentes[9][3] = -1;
        adyacentes[9][4] = 10;            
        adyacentes[9][5] = -1;
        adyacentes[9][6] = 16;
        adyacentes[9][7] = -1;
        
        adyacentes[10][0] = 2;
        adyacentes[10][1] = 3;
        adyacentes[10][2] = 4;
        adyacentes[10][3] = 9;
        adyacentes[10][4] = 11;            
        adyacentes[10][5] = 16;
        adyacentes[10][6] = 17;
        adyacentes[10][7] = 18;

   		adyacentes[11][0] = -1;
        adyacentes[11][1] = 4;
        adyacentes[11][2] = -1;
        adyacentes[11][3] = 10;
        adyacentes[11][4] = -1;            
        adyacentes[11][5] = -1;
        adyacentes[11][6] = 18;
        adyacentes[11][7] = -1;
        
		adyacentes[12][0] = -1;
        adyacentes[12][1] = -1;
        adyacentes[12][2] = -1;
        adyacentes[12][3] = -1;
        adyacentes[12][4] = -1;            
        adyacentes[12][5] = -1;
        adyacentes[12][6] = -1;
        adyacentes[12][7] = -1;
        
        adyacentes[13][0] = -1;
        adyacentes[13][1] = -1;
        adyacentes[13][2] = -1;
        adyacentes[13][3] = -1;
        adyacentes[13][4] = -1;            
        adyacentes[13][5] = -1;
        adyacentes[13][6] = -1;
        adyacentes[13][7] = -1;
        
        
        adyacentes[14][0] = -1;
        adyacentes[14][1] = -1;
        adyacentes[14][2] = -1;
        adyacentes[14][3] = -1;
        adyacentes[14][4] = 15;            
        adyacentes[14][5] = -1;
        adyacentes[14][6] = 21;
        adyacentes[14][7] = 22;
        
        adyacentes[15][0] = -1;
        adyacentes[15][1] = -1;
        adyacentes[15][2] = -1;
        adyacentes[15][3] = 14;
        adyacentes[15][4] = 16;            
        adyacentes[15][5] = -1;
        adyacentes[15][6] = 22;
        adyacentes[15][7] = -1;
        
        adyacentes[16][0] = -1;
        adyacentes[16][1] = 9;
        adyacentes[16][2] = 10;
        adyacentes[16][3] = 15;
        adyacentes[16][4] = 17;            
        adyacentes[16][5] = 22;
        adyacentes[16][6] = 23;
        adyacentes[16][7] = 24;
        
        adyacentes[17][0] = -1;
        adyacentes[17][1] = 10;
        adyacentes[17][2] = -1;
        adyacentes[17][3] = 16;
        adyacentes[17][4] = 18;            
        adyacentes[17][5] = -1;
        adyacentes[17][6] = 24;
        adyacentes[17][7] = -1;
        
        adyacentes[18][0] = 10;
        adyacentes[18][1] = 11;
        adyacentes[18][2] = -1;
        adyacentes[18][3] = 17;
        adyacentes[18][4] = 19;            
        adyacentes[18][5] = 24;
        adyacentes[18][6] = 25;
        adyacentes[18][7] = 26;
        
        adyacentes[19][0] = -1;
        adyacentes[19][1] = -1;
        adyacentes[19][2] = -1;
        adyacentes[19][3] = 18;
        adyacentes[19][4] = 20;            
        adyacentes[19][5] = -1;
        adyacentes[19][6] = 26;
        adyacentes[19][7] = -1;

        adyacentes[20][0] = -1;
        adyacentes[20][1] = -1;
        adyacentes[20][2] = -1;
        adyacentes[20][3] = 19;
        adyacentes[20][4] = -1;            
        adyacentes[20][5] = 26;
        adyacentes[20][6] = 27;
        adyacentes[20][7] = -1;

        
   		adyacentes[21][0] = -1;
        adyacentes[21][1] = 14;
        adyacentes[21][2] = -1;
        adyacentes[21][3] = -1;
        adyacentes[21][4] = 22;            
        adyacentes[21][5] = -1;
        adyacentes[21][6] = 28;
        adyacentes[21][7] = -1;
        
		adyacentes[22][0] = 14;
        adyacentes[22][1] = 15;
        adyacentes[22][2] = 16;
        adyacentes[22][3] = 21;
        adyacentes[22][4] = 23;            
        adyacentes[22][5] = 28;
        adyacentes[22][6] = 29;
        adyacentes[22][7] = 30;
        
        adyacentes[23][0] = -1;
        adyacentes[23][1] = 16;
        adyacentes[23][2] = -1;
        adyacentes[23][3] = 22;
        adyacentes[23][4] = 24;            
        adyacentes[23][5] = -1;
        adyacentes[23][6] = 30;
        adyacentes[23][7] = -1;
        
        adyacentes[24][0] = 16;
        adyacentes[24][1] = 17;
        adyacentes[24][2] = 18;
        adyacentes[24][3] = 23;
        adyacentes[24][4] = 25;            
        adyacentes[24][5] = 30;
        adyacentes[24][6] = 31;
        adyacentes[24][7] = 32;
        
        adyacentes[25][0] = -1;
        adyacentes[25][1] = 18;
        adyacentes[25][2] = -1;
        adyacentes[25][3] = 24;
        adyacentes[25][4] = 26;            
        adyacentes[25][5] = -1;
        adyacentes[25][6] = 32;
        adyacentes[25][7] = -1;
        
        adyacentes[26][0] = 18;
        adyacentes[26][1] = 19;
        adyacentes[26][2] = 20;
        adyacentes[26][3] = 25;
        adyacentes[26][4] = 27;            
        adyacentes[26][5] = 32;
        adyacentes[26][6] = 33;
        adyacentes[26][7] = 34;
        
        adyacentes[27][0] = -1;
        adyacentes[27][1] = 20;
        adyacentes[27][2] = -1;
        adyacentes[27][3] = 26;
        adyacentes[27][4] = -1;            
        adyacentes[27][5] = -1;
        adyacentes[27][6] = 34;
        adyacentes[27][7] = -1;
        
        
        adyacentes[28][0] = -1;
        adyacentes[28][1] = 21;
        adyacentes[28][2] = 22;
        adyacentes[28][3] = -1;
        adyacentes[28][4] = 29;            
        adyacentes[28][5] = -1;
        adyacentes[28][6] = -1;
        adyacentes[28][7] = -1;
        
        adyacentes[29][0] = -1;
        adyacentes[29][1] = 22;
        adyacentes[29][2] = -1;
        adyacentes[29][3] = 28;
        adyacentes[29][4] = 30;            
        adyacentes[29][5] = -1;
        adyacentes[29][6] = -1;
        adyacentes[29][7] = -1;

        adyacentes[30][0] = 22;
        adyacentes[30][1] = 23;
        adyacentes[30][2] = 24;
        adyacentes[30][3] = 29;
        adyacentes[30][4] = 31;            
        adyacentes[30][5] = -1;
        adyacentes[30][6] = 37;
        adyacentes[30][7] = 38;

   		adyacentes[31][0] = -1;
        adyacentes[31][1] = 24;
        adyacentes[31][2] = -1;
        adyacentes[31][3] = 30;
        adyacentes[31][4] = 32;            
        adyacentes[31][5] = -1;
        adyacentes[31][6] = 38;
        adyacentes[31][7] = -1;
        
		adyacentes[32][0] = 24;
        adyacentes[32][1] = 25;
        adyacentes[32][2] = 26;
        adyacentes[32][3] = 31;
        adyacentes[32][4] = 33;            
        adyacentes[32][5] = 38;
        adyacentes[32][6] = 39;
        adyacentes[32][7] = -1;
        
        adyacentes[33][0] = -1;
        adyacentes[33][1] = 26;
        adyacentes[33][2] = -1;
        adyacentes[33][3] = 32;
        adyacentes[33][4] = 34;            
        adyacentes[33][5] = -1;
        adyacentes[33][6] = -1;
        adyacentes[33][7] = -1;
        
        adyacentes[34][0] = 26;
        adyacentes[34][1] = 27;
        adyacentes[34][2] = -1;
        adyacentes[34][3] = 33;
        adyacentes[34][4] = -1;            
        adyacentes[34][5] = -1;
        adyacentes[34][6] = -1;
        adyacentes[34][7] = -1;
        
        
        adyacentes[35][0] = -1;
        adyacentes[35][1] = -1;
        adyacentes[35][2] = -1;
        adyacentes[35][3] = -1;
        adyacentes[35][4] = -1;            
        adyacentes[35][5] = -1;
        adyacentes[35][6] = -1;
        adyacentes[35][7] = -1;
        
        adyacentes[36][0] = -1;
        adyacentes[36][1] = -1;
        adyacentes[36][2] = -1;
        adyacentes[36][3] = -1;
        adyacentes[36][4] = -1;            
        adyacentes[36][5] = -1;
        adyacentes[36][6] = -1;
        adyacentes[36][7] = -1;
        
        adyacentes[37][0] = -1;
        adyacentes[37][1] = 30;
        adyacentes[37][2] = -1;
        adyacentes[37][3] = -1;
        adyacentes[37][4] = 38;            
        adyacentes[37][5] = -1;
        adyacentes[37][6] = 44;
        adyacentes[37][7] = -1;
        
        adyacentes[38][0] = 30;
        adyacentes[38][1] = 31;
        adyacentes[38][2] = 32;
        adyacentes[38][3] = 37;
        adyacentes[38][4] = 39;            
        adyacentes[38][5] = 44;
        adyacentes[38][6] = 45;
        adyacentes[38][7] = 46;
        
        adyacentes[39][0] = -1;
        adyacentes[39][1] = 32;
        adyacentes[39][2] = -1;
        adyacentes[39][3] = 38;
        adyacentes[39][4] = -1;            
        adyacentes[39][5] = -1;
        adyacentes[39][6] = 46;
        adyacentes[39][7] = -1;
        
        adyacentes[40][0] = -1;
        adyacentes[40][1] = -1;
        adyacentes[40][2] = -1;
        adyacentes[40][3] = -1;
        adyacentes[40][4] = -1;            
        adyacentes[40][5] = -1;
        adyacentes[40][6] = -1;
        adyacentes[40][7] = -1;

   		adyacentes[41][0] = -1;
        adyacentes[41][1] = -1;
        adyacentes[41][2] = -1;
        adyacentes[41][3] = -1;
        adyacentes[41][4] = -1;            
        adyacentes[41][5] = -1;
        adyacentes[41][6] = -1;
        adyacentes[41][7] = -1;
        
        
		adyacentes[42][0] = -1;
        adyacentes[42][1] = -1;
        adyacentes[42][2] = -1;
        adyacentes[42][3] = -1;
        adyacentes[42][4] = -1;            
        adyacentes[42][5] = -1;
        adyacentes[42][6] = -1;
        adyacentes[42][7] = -1;
        
        adyacentes[43][0] = -1;
        adyacentes[43][1] = -1;
        adyacentes[43][2] = -1;
        adyacentes[43][3] = -1;
        adyacentes[43][4] = -1;            
        adyacentes[43][5] = -1;
        adyacentes[43][6] = -1;
        adyacentes[43][7] = -1;
        
        adyacentes[44][0] = -1;
        adyacentes[44][1] = 37;
        adyacentes[44][2] = 38;
        adyacentes[44][3] = -1;
        adyacentes[44][4] = 45;            
        adyacentes[44][5] = -1;
        adyacentes[44][6] = -1;
        adyacentes[44][7] = -1;
        
        adyacentes[45][0] = -1;
        adyacentes[45][1] = 38;
        adyacentes[45][2] = -1;
        adyacentes[45][3] = 44;
        adyacentes[45][4] = 46;            
        adyacentes[45][5] = -1;
        adyacentes[45][6] = -1;
        adyacentes[45][7] = -1;
        
        adyacentes[46][0] = 38;
        adyacentes[46][1] = 39;
        adyacentes[46][2] = -1;
        adyacentes[46][3] = 45;
        adyacentes[46][4] = -1;            
        adyacentes[46][5] = -1;
        adyacentes[46][6] = -1;
        adyacentes[46][7] = -1;
        
        adyacentes[47][0] = -1;
        adyacentes[47][1] = -1;
        adyacentes[47][2] = -1;
        adyacentes[47][3] = -1;
        adyacentes[47][4] = -1;            
        adyacentes[47][5] = -1;
        adyacentes[47][6] = -1;
        adyacentes[47][7] = -1;
        
        adyacentes[48][0] = -1;
        adyacentes[48][1] = -1;
        adyacentes[48][2] = -1;
        adyacentes[48][3] = -1;
        adyacentes[48][4] = -1;            
        adyacentes[48][5] = -1;
        adyacentes[48][6] = -1;
        adyacentes[48][7] = -1;
		
       
        
        //Crea un vector distancia, con la distancia de cada casilla al resto de casillas.
        for (int casilla = 0; casilla < 49; casilla++)
        {
            
            int cont = 1;
            boolean[] comprobado = new boolean[49];
            Queue cola = new LinkedList();  
            Queue colaAux = new LinkedList();
            cola.add (casilla);            
            while (cola.size() != 0)
            {               
                comprobado[(Integer)cola.peek()] = true;

                for (int i = 0; i < 8; i++)
                {
                    if (Cruz_restri.adyacentes[(Integer)cola.peek()][i] != -1 && !comprobado[Cruz_restri.adyacentes[(Integer)cola.peek()][i]])
                    {
                        distancia[casilla][Cruz_restri.adyacentes[(Integer)cola.peek()][i]] = cont;
                        comprobado[Cruz_restri.adyacentes[(Integer) cola.peek()][i]] = true;
                        colaAux.add(Cruz_restri.adyacentes[(Integer) cola.peek()][i]);
                    }
                }
                cola.remove();

                if (cola.size() == 0)
                {
                    while (colaAux.size() != 0)
                    {
                        cola.add((Integer)colaAux.peek());
                        colaAux.remove();
                    }
                    cont++;
                }
            }
        }
        
        
	}
}
