Untitled
unknown
plain_text
2 years ago
969 B
12
Indexable
#include <iostream>
using namespace std;
int qe[2000000];
int dx[] = {-2,-2,-1-1,1,1,2,2};
int dy[] = {-1,1,-2,2,-2,2,-1,1};
int A[1000][1000]= {0};
int head;
int tail;
void enq(int x){
tail++;
qe[tail] = x;
}
int deq(){
head++;
int x = qe[head];
return x;
}
int main(){
freopen("input.txt","r",stdin);
int T,x;
cin>>T;
for (x = 0; x < T; x++){
int N,M;
cin>>N>>M;
int R,C,S,K;
cin>>R>>C>>S>>K;
R--;C--;S--;K--;
head = -1;
tail = -1;
enq(R);
enq(C);
A[R][C] = 1;
while (tail - head >=2){
int row = deq();
int col = deq();
for (int k = 0; k < 8; k++){
int x1 = row + dx[k];
int y1 = col + dy[k];
if (x1>=0 && y1>=0 && x1<N && y1<M && A[x1][y1] == 0){
enq(x1);
enq(y1);
A[x1][y1] = A[row][col] + 1;
}
}
}
cout <<"Case #"<<x+1<<endl<<A[S][K]<<endl;
for (int i = 0; i < N; i++)
for (int j = 0; j < M ; j++)
A[i][j] = 0;
}
return 0;
}Editor is loading...