一直都是运行错误,测试的结果都正确的
帮忙看看是哪里的错误
下面是提交的代码
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main{
private static int n;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
String mine[] = new String[510]; //地雷
int dis[][] = new int[510][510]; //各个点到0,0点的最小距离
for (int i = 0; i < n; i++) {
mine[i] = sc.next();
}
bfs(0,0,mine,dis);
int x,y,z;
while(true){
x = sc.nextInt();
y = sc.nextInt();
z = sc.nextInt();
if(x == 0 && y == 0 )
System.out.println(1);
else if(dis[x][y] <= z && dis[x][y] !=0 )
System.out.println(1);
else
System.out.println(-1);
}
}
private static void bfs(int x, int y,String mine[],int dis[][]) {
Queue<Node> queue = new LinkedList<>();
queue.add(new Node(0,0));
dis[x][y] = 0;
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
while(!queue.isEmpty()){
Node temp = queue.remove();
for (int i = 0; i < 4; i++) {
int nx,ny;
nx = temp.x + dx[i];
ny = temp.y + dy[i];
if(nx<0 || nx> n-1 || ny < 0 || ny> n-1) continue;
if(dis[nx][ny]!=0)continue;
if(mine[nx].charAt(ny)=='*')continue;
dis[nx][ny] = dis[temp.x][temp.y]+1;
queue.add(new Node(nx,ny));
}
}
}
static class Node{
int x;
int y;
public Node(int x, int y) {
this.x = x;
this.y = y;
}
}
}