Advertisement
Guest User

Untitled

a guest
Oct 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <bits/stdc++.h> //inf=0x3f3f3f3f;//printf("%.10lf\n",x);
  2. #define ROCK ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  3. using namespace std;
  4. typedef long long ll;
  5. const int N=1e3+5,inf=0x3f3f3f3f;
  6. int dx[]={-2,-2,-1,-1,1,1,2,2};
  7. int dy[]={-1,1,-2,2,-2,2,-1,1};
  8. int vis[N][N],dis[N][N];
  9.  
  10. void bfs(int x,int y){
  11. memset(dis,inf,sizeof dis);
  12. memset(vis,0,sizeof vis);
  13. queue<pair<int,int> >q;
  14. vis[x][y]=1;
  15. dis[x][y]=0;
  16. q.push({x,y});
  17. while(q.size()){
  18. int a=q.front().first;
  19. int b=q.front().second;
  20. q.pop();
  21. for(int i=0;i<8;i++){
  22. int nextx=a+dx[i];
  23. int nexty=b+dy[i];
  24. if(nextx<1||nextx>N||nexty<1||nexty>N)continue;
  25. if(!vis[nextx][nexty]){
  26. vis[nextx][nexty]=1;
  27. dis[nextx][nexty]=dis[a][b]+1;
  28. q.push({nextx,nexty});
  29. }
  30. }
  31. }
  32. }
  33. int main()
  34. {
  35. ROCK;
  36. int t;cin>>t;
  37. while(t--){int x,y;cin>>x>>y;bfs(x,y);cout<<dis[1][1]<<endl;}
  38. return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement