Grasshop.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Grasshop {
private static int [][] pole;
int x,y,gx,gy,lx,ly;
while((str = br.readLine()) != null){
radek = str.split(" ");
pole = new int [x][y];
rek(gx-1, gy-1, 1);
System.
out.
println(pole
[lx
-1][ly
-1] == 0 ? "impossible" : pole
[lx
-1][ly
-1]-1); }
}
private static void rek(int x, int y, int cena)
{
if (pole[x][y] == 0 || pole[x][y] > cena)
pole[x][y] = cena;
else
return;
//System.out.println(x+" "+y+" "+cena);
if (isValid(x+1, y+2))
rek(x+1, y+2, cena+1);
if (isValid(x+1, y-2))
rek(x+1, y-2, cena+1);
if (isValid(x-1, y+2))
rek(x-1, y+2, cena+1);
if (isValid(x-1, y-2))
rek(x-1, y-2, cena+1);
if (isValid(x+2, y+1))
rek(x+2, y+1, cena+1);
if (isValid(x+2, y-1))
rek(x+2, y-1, cena+1);
if (isValid(x-2, y+1))
rek(x-2, y+1, cena+1);
if (isValid(x-2, y-1))
rek(x-2, y-1, cena+1);
}
private static boolean isValid(int x, int y)
{
return x >= 0 &&
x < pole.length &&
y >= 0 &&
y < pole[0].length;
}
}