Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void find_path(int r,int c,int step) ;
  6. bool isvalied(int r ,int c);
  7.  
  8. int n , x , y ;
  9. string path = "IEHOVA#" ;
  10. vector <string> grid ;
  11. vector <string> result ;
  12.  
  13. int main( int argc, char ** argv ) {
  14. cin >> n ;
  15. for(int h = 0;h < n;h++)
  16. {
  17. cin >> x >> y ;
  18. string s ;
  19. for(int i = 0;i < x;i++)
  20. {
  21. cin >> s ;
  22. grid.push_back(s);
  23. }
  24. int order = 0;
  25. for(int i = 0;i < y;i++)
  26. if(grid[x-1][i] == '@')
  27. {
  28. order = i ;
  29. break;
  30. }
  31. find_path(x-1,order,0) ;
  32. for(int i = 0;i < result.size()-1;i++)
  33. cout << result[i] << " " ;
  34. cout << result[result.size()-1] << endl ;
  35. grid.clear() ;
  36. result.clear() ;
  37. }
  38. return 0;
  39. }
  40.  
  41. bool isvalied(int r ,int c){
  42. if(r >= x || r < 0 || c >= y || c < 0)
  43. return false ;
  44. return true ;
  45. }
  46.  
  47. void find_path(int r,int c,int step)
  48. {
  49. if(grid[r][c] == '#')
  50. return ;
  51. if(isvalied(r-1,c) && grid[r-1][c] == path[step]){
  52. result.push_back("forth");
  53. find_path(r-1,c,step+1) ;
  54. }
  55. else if(isvalied(r,c+1) && grid[r][c+1] == path[step]){
  56. result.push_back("right");
  57. find_path(r,c+1,step+1) ;
  58. }
  59. else if(isvalied(r,c-1) && grid[r][c-1] == path[step]){
  60. result.push_back("left");
  61. find_path(r,c-1,step+1) ;
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement