first commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import java.util.*;
|
||||
|
||||
public class non {
|
||||
static class Pair{
|
||||
int x, y, cnt;
|
||||
public Pair(int x, int y){
|
||||
this.x=x;
|
||||
this.y=y;
|
||||
this.cnt=0;
|
||||
}
|
||||
public Pair(String s){
|
||||
this.x = (int)(s.charAt(0) - 'a');
|
||||
this.y = (int)(s.charAt(1) - '1');
|
||||
this.cnt = 0;
|
||||
}
|
||||
|
||||
public boolean is(Pair b){
|
||||
return x==b.x && y==b.y;
|
||||
}
|
||||
}
|
||||
|
||||
static int[][] step = {{-2, 2}, {-1, 1}};
|
||||
|
||||
static boolean check(int x, int y){
|
||||
return x>=0 && x<8 && y>=0 && y<8;
|
||||
}
|
||||
|
||||
static void solve(String a, String b){
|
||||
Pair st = new Pair(a);
|
||||
Pair en = new Pair(b);
|
||||
boolean[][] check = new boolean[8][8];
|
||||
Queue<Pair> q = new LinkedList<>();
|
||||
q.add(st);
|
||||
while(!q.isEmpty()){
|
||||
Pair u = q.poll();
|
||||
if(u.is(en)){
|
||||
System.out.println(u.cnt);
|
||||
return;
|
||||
}
|
||||
for(int i=0;i<2;i++){
|
||||
for(int j=0;j<2;j++){
|
||||
for(int k=0;k<2;k++){
|
||||
Pair x = new Pair(u.x+step[k][i], u.y+step[1-k][j]);
|
||||
if(check(x.x, x.y)){
|
||||
x.cnt = u.cnt+1;
|
||||
q.add(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int T = sc.nextInt();
|
||||
while(T-->0) solve(sc.next(), sc.next());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user