| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
新人刷题,求教大佬们为啥wa啊,,实在查不出来了import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Dilaodashi {
static int i, j, k;
static char[][][] input;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
i = scanner.nextInt();
j = scanner.nextInt();
k = scanner.nextInt();
input = new char[i][j][k];
if (i==0 && j==0 && k==0) {
break;
}
scanner.nextLine();
for (int l = 0; l < i; l++) {
for (int m = 0; m < j; m++) {
char[] line = scanner.nextLine().toCharArray();
for (int n = 0; n < k; n++) {
input[l][m][n] = line[n];
}
}
scanner.nextLine();
}
bfs1(input);
}
}
public static void bfs1(char[][][] chars) {
int step = 0;
Queue<Node> queue = new LinkedList<Node>();
int[][][] visit = new int[chars.length][chars[0].length][chars[0][0].length];
Node start = null;
for (int l = 0; l < chars.length; l++) {
for (int m = 0; m < chars[0].length; m++) {
for (int n = 0; n < chars[0][0].length; n++) {
if (chars[l][m][n] == 'S') {
start = new Node(l, m, n);
}
}
}
}
queue.offer(start);
visit[start.ni][start.nj][start.nk] = 1;
while (!queue.isEmpty()) {
step++;
for (int l = 0; l < queue.size(); l++) {
Node temp = queue.poll();
if (chars[temp.ni][temp.nj][temp.nk]=='E') {
System.out.println("Escaped in " + (step - 1) + " minute(s).");
return;
}
if (temp.ni > 0 && visit[temp.ni - 1][temp.nj][temp.nk] != 1) {
if (chars[temp.ni - 1][temp.nj][temp.nk]!='#') {
queue.offer(new Node(temp.ni - 1, temp.nj, temp.nk));
visit[temp.ni - 1][temp.nj][temp.nk] = 1;
}
}
if (temp.ni < chars.length - 1 && visit[temp.ni + 1][temp.nj][temp.nk] != 1) {
if (chars[temp.ni + 1][temp.nj][temp.nk]!='#') {
queue.offer(new Node(temp.ni + 1, temp.nj, temp.nk));
visit[temp.ni + 1][temp.nj][temp.nk] = 1;
}
}
if (temp.nj > 0 && visit[temp.ni][temp.nj - 1][temp.nk] != 1) {
if (chars[temp.ni][temp.nj - 1][temp.nk]!='#') {
queue.offer(new Node(temp.ni, temp.nj - 1, temp.nk));
visit[temp.ni][temp.nj - 1][temp.nk] = 1;
}
}
if (temp.nj < chars[0].length - 1 && visit[temp.ni][temp.nj + 1][temp.nk] != 1) {
if (chars[temp.ni][temp.nj + 1][temp.nk] !='#') {
queue.offer(new Node(temp.ni, temp.nj + 1, temp.nk));
visit[temp.ni][temp.nj + 1][temp.nk] = 1;
}
}
if (temp.nk > 0 && visit[temp.ni][temp.nj][temp.nk - 1] != 1) {
if (chars[temp.ni][temp.nj][temp.nk - 1] != '#') {
queue.offer(new Node(temp.ni, temp.nj, temp.nk - 1));
visit[temp.ni][temp.nj][temp.nk - 1] = 1;
}
}
if (temp.nk < chars[0][0].length - 1 && visit[temp.ni][temp.nj][temp.nk + 1] != 1) {
if (chars[temp.ni][temp.nj][temp.nk + 1] != '#') {
queue.offer(new Node(temp.ni, temp.nj, temp.nk + 1));
visit[temp.ni][temp.nj][temp.nk + 1] = 1;
}
}
}
}
System.out.println("Trapped!");
}
static class Node {
int ni;
int nj;
int nk;
public Node() {
}
public Node(int ni, int nj, int nk) {
this.ni = ni;
this.nj = nj;
this.nk = nk;
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator