Advertisement
warrior07

boggle 2

Aug 18th, 2020
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int ans=0;
  4. map<int,map<int,bool>> visited;
  5. void func(char** board, char* word, int i,int x,int y,int m,int n){
  6. if(x<0 || y<0 || x>=m|| y>=n )
  7. return;
  8. if(!visited[x][y] && word[i]==board[x][y]){
  9. if(i==strlen(word)-1){
  10. ans++;
  11. return;
  12. }
  13. visited[x][y]=true;
  14. func(board,word,i+1,x+1,y,m,n);
  15. func(board,word,i+1,x+1,y+1,m,n);
  16. func(board,word,i+1,x+1,y-1,m,n);
  17. func(board,word,i+1,x-1,y+1,m,n);
  18. func(board,word,i+1,x-1,y-1,m,n);
  19. func(board,word,i+1,x-1,y,m,n);
  20. func(board,word,i+1,x,y+1,m,n);
  21. func(board,word,i+1,x,y-1,m,n);
  22. }
  23. return;
  24. }
  25. int helper(char** board,int m,int n,char* word)
  26. {
  27. ans=0;
  28. for(int i=0;i<m;i++){
  29. for(int j=0;j<n;j++){
  30. if(board[i][j]==word[0])
  31. {
  32. //memset(visited,false,sizeof(visited));
  33. visited.clear();
  34. func(board,word,0,i,j,m,n);
  35. }
  36.  
  37. }
  38. }
  39. return ans;
  40.  
  41. }
  42. int main(){
  43. char** board;
  44. board=new char* [2];
  45. cout<<visited[1][2]<<endl;
  46. for(int i=0;i<2;i++)
  47. board[i] = new char[4];
  48. board[0][0]='h';
  49. board[0][1]='e';
  50. board[0][2]='l';
  51. board[0][3]='l';
  52. board[1][0]='a';
  53. board[1][1]='b';
  54. board[1][2]='h';
  55. board[1][3]='o';
  56. char* word;
  57. word=new char[5];
  58. word[0]='h';
  59. word[1]='e';
  60. word[2]='l';
  61. word[3]='l';
  62. word[4]='o';
  63. cout<<helper(board,2,4,word);
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement