Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h> //inf=0x3f3f3f3f;//printf("%.10lf\n",x);
- #define ROCK ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
- using namespace std;
- typedef long long ll;
- const int N=1e3+5,inf=0x3f3f3f3f;
- int dx[]={-2,-2,-1,-1,1,1,2,2};
- int dy[]={-1,1,-2,2,-2,2,-1,1};
- int vis[N][N],dis[N][N];
- void bfs(int x,int y){
- memset(dis,inf,sizeof dis);
- memset(vis,0,sizeof vis);
- queue<pair<int,int> >q;
- vis[x][y]=1;
- dis[x][y]=0;
- q.push({x,y});
- while(q.size()){
- int a=q.front().first;
- int b=q.front().second;
- q.pop();
- for(int i=0;i<8;i++){
- int nextx=a+dx[i];
- int nexty=b+dy[i];
- if(nextx<1||nextx>N||nexty<1||nexty>N)continue;
- if(!vis[nextx][nexty]){
- vis[nextx][nexty]=1;
- dis[nextx][nexty]=dis[a][b]+1;
- q.push({nextx,nexty});
- }
- }
- }
- }
- int main()
- {
- ROCK;
- int t;cin>>t;
- while(t--){int x,y;cin>>x>>y;bfs(x,y);cout<<dis[1][1]<<endl;}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement