水問題の全体の検索は、私は全体の検索を見直し、それを言うことはありません。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 const int型 N = 1550 ; const int型 MAXN = 1E6 + 7 。 int型のn; INTのXX、YY、X、Y。 チャーditu [N] [N]。 int型の FX [ 5 ] = { 0、0、1、0、 - 1 }。 INT FY [ 5 ] = { 0、1、0、 - 1、0 }。 INT [MAXN] [ 4]; BOOL VIS [N] [N]。 ブール値[N] [N]ができます。 INT メイン() { scanf関数(" %のD "、&N) 以下のために(int型 i = 1 ; iが<= N iが++ ) { ため(INT J = 1 ; J <= nであり、j ++ ) { CIN >> ditu [I] [J]。 もし(ditu [I] [J] == ' 0 ')ができる[i] [j]は= 真。 } } CIN >> X >> Y >> XX >> YY。 INT、T = 0、W = 1 。 VIS [X] [Y]は = 真。 [ 1 ] [ 1 ] =のX。 [ 1 ] [ 2 ] = yと、 [ 1 ] [ 3 ] = 0 。 一方、(T < W) { T ++ 。 以下のために(int型 I = 1 ; = iが< 4 ; iは++ ) { int型 DX = [T] [ 1 ] + FX [I]。 int型 DY = [T] [ 2 ] + FY [I]。 もし(dxが> 0 && DY> 0!&& DX <= N && DY <= N && VIS [DX] [DY] && 缶[DX] [DY]) { W ++ 。 VIS [DX] [DY]は = 真; [W] [ 1 ] = DX。 [W] [ 2 ] = DY。 A [W] [ 3 ] = [T] [ 3 ] + 1 。 もし(DX == XX && DY == YY) { のprintf(" %のD "、[W] [ 3 ])。 リターン 0 ; } } } } 戻り 0 。 }