Guest User

Untitled

a guest
Oct 17th, 2019
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5.    int arrx[]={2,2,-2,-2,1,-1,1,-1};
  6.    int arry[]={-1,1,-1,1,2,2,-2,-2};
  7.  
  8.  
  9. int inrange(int i,int j){
  10.  
  11.     if(i<0||i>=3||j<0||j>=3){
  12.           return false;
  13.     }
  14.    
  15.    return true;
  16. }
  17.  
  18.  
  19. struct Data {
  20.    int i;
  21.    int j;
  22.    int dis;
  23. };
  24.  
  25. void bfs(int i,int j,vector<vector<int>>& vis,vector<vector<int>>& dis){
  26.  
  27.  
  28.       queue<Data> q;
  29.      
  30.       Data d;
  31.       d.i=i;
  32.       d.j=j;
  33.       d.dis=0;
  34.       vis[i][j]=1;
  35.  
  36.       q.push(d);
  37.  
  38.  
  39.       while(!q.empty()){
  40.          Data in=q.front();
  41.          q.pop();
  42.          cout<<in.i<<" "<<in.j<<endl;
  43.  
  44.              /* if(in.i==0&&in.j==0){
  45.                  cout<<in.dis<<endl;
  46.                  dis[in.i][in.j]=in.dis;
  47.                  break;
  48.               }*/  
  49.  
  50.          for(int i=0;i<8;i++){
  51.        
  52.               int x=arrx[i]+in.i;
  53.               int y=arry[i]+in.j;
  54.  
  55.              if(inrange(x,y)&&vis[x][y]==0){
  56.              vis[x][y]==1;
  57.              Data newd;
  58.              newd.i=x;
  59.              newd.j=y;
  60.              newd.dis=1+in.dis;
  61.              dis[x][y]=newd.dis;
  62.              q.push(newd);
  63.               }
  64.              
  65.         }
  66.      }
  67.  
  68. }
  69.  
  70.  
  71. int main(){
  72.  
  73.   vector<vector<int>> dis(3,vector<int>(3,0));
  74.  
  75.  
  76.   vector<vector<int>> vis(3,vector<int>(3,0));
  77.   bfs(0,0,vis,dis);
  78.  
  79.  
  80. return 0;
  81. }
Add Comment
Please, Sign In to add comment