Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- void find_path(int r,int c,int step) ;
- bool isvalied(int r ,int c);
- int n , x , y ;
- string path = "IEHOVA#" ;
- vector <string> grid ;
- vector <string> result ;
- int main( int argc, char ** argv ) {
- cin >> n ;
- for(int h = 0;h < n;h++)
- {
- cin >> x >> y ;
- string s ;
- for(int i = 0;i < x;i++)
- {
- cin >> s ;
- grid.push_back(s);
- }
- int order = 0;
- for(int i = 0;i < y;i++)
- if(grid[x-1][i] == '@')
- {
- order = i ;
- break;
- }
- find_path(x-1,order,0) ;
- for(int i = 0;i < result.size()-1;i++)
- cout << result[i] << " " ;
- cout << result[result.size()-1] << endl ;
- grid.clear() ;
- result.clear() ;
- }
- return 0;
- }
- bool isvalied(int r ,int c){
- if(r >= x || r < 0 || c >= y || c < 0)
- return false ;
- return true ;
- }
- void find_path(int r,int c,int step)
- {
- if(grid[r][c] == '#')
- return ;
- if(isvalied(r-1,c) && grid[r-1][c] == path[step]){
- result.push_back("forth");
- find_path(r-1,c,step+1) ;
- }
- else if(isvalied(r,c+1) && grid[r][c+1] == path[step]){
- result.push_back("right");
- find_path(r,c+1,step+1) ;
- }
- else if(isvalied(r,c-1) && grid[r][c-1] == path[step]){
- result.push_back("left");
- find_path(r,c-1,step+1) ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement