Решение задачи Один конь с Acmp

Без пояснения   Просмотров: 13



Код


    #include<iostream>

#include<queue>

using namespace std;

int main() {

	int n,i,j,k,x1,y1,x2,y2,u,v;queue<pair<int,int>>q;

	int x[8]={-2,-2,-1,-1,1,1,2,2},

		y[8]={-1,1,-2,2,-2,2,-1,1};

	cin>>n;int d[n+1][n+1];

	for(i=0;i<=n;++i)

		for(j=0;j<=n;++j)d[i][j]=1000000000;

	cin>>x1>>y1>>x2>>y2;

	d[x1][y1]=0; q.push(make_pair(x1,y1));

	while(!q.empty()){

		i=q.front().first;j=q.front().second;q.pop();

		for(k=0;k<8;++k){u=i+x[k];v=j+y[k];

			if(u>0&&u<=n&&v>0&&v<=n&&d[u][v]>d[i][j]+1){

			d[u][v]=d[i][j]+1;q.push(make_pair(u,v));}}}

	cout<<d[x2][y2];

	return 0;}   
        

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться