Pabon_SEC

Word-Search Wonder

Apr 10th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. char str[102][102];
  6.  
  7. string s;
  8.  
  9. int n;
  10.  
  11. struct point
  12. {
  13.     int x,y;
  14.  
  15. } v;
  16.  
  17. bool bfs(point ind,int X,int Y)
  18. {
  19.     queue<point>Q;
  20.  
  21.     point dir;
  22.  
  23.     dir.x = X;
  24.  
  25.     dir.y = Y;
  26.  
  27.     Q.push(ind);
  28.  
  29.     int l = 1;
  30.  
  31.     while(!Q.empty() && l<s.length())
  32.     {
  33.         point u = Q.front();
  34.  
  35.         Q.pop();
  36.  
  37.         v.x = u.x+dir.x;
  38.  
  39.         v.y = u.y+dir.y;
  40.  
  41.         if(v.x>=0 && v.y>=0 && v.x<n && v.y<n && s[l]==str[v.x][v.y])
  42.         {
  43.             Q.push(v);
  44.  
  45.             l++;
  46.         }
  47.     }
  48.  
  49.     if(l==s.length())
  50.         return true;
  51.  
  52.     return false;
  53. }
  54.  
  55. int main()
  56. {
  57.     int i,j;
  58.  
  59.     scanf("%d",&n);
  60.  
  61.     getchar();
  62.  
  63.     for(i=0; i<n; i++)
  64.     {
  65.         gets(str[i]);
  66.     }
  67.  
  68.     while(cin>>s)
  69.     {
  70.         if(s[0]=='0')
  71.             break;
  72.  
  73.         bool dhukse = false;
  74.  
  75.         for(i=0; i<n; i++)
  76.         {
  77.             for(j=0; j<n; j++)
  78.             {
  79.                 if(s[0]==str[i][j])
  80.                 {
  81.                     point ind;
  82.  
  83.                     ind.x = i;
  84.  
  85.                     ind.y = j;
  86.  
  87.                     if(bfs(ind,1,1)||bfs(ind,0,1)||bfs(ind,1,0)||bfs(ind,1,-1)||bfs(ind,0,-1)||bfs(ind,-1,0)||bfs(ind,-1,1)||bfs(ind,-1,-1))
  88.                     {
  89.                         printf("%d,%d %d,%d\n",i+1,j+1,v.x+1,v.y+1);
  90.  
  91.                         dhukse = true;
  92.  
  93.                         break;
  94.                     }
  95.                 }
  96.             }
  97.  
  98.             if(dhukse)
  99.             {
  100.                 break;
  101.             }
  102.         }
  103.  
  104.         if(!dhukse)
  105.         {
  106.             printf("Not found\n");
  107.         }
  108.     }
  109.  
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment