Advertisement
wojiaocbj

BG

Jun 11th, 2022
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2. char map[256][256] = { 0 };
  3. int n;
  4. int gx, gy, lx, ly, flag = 0;
  5. int dirs[4][2] = { {0,1},{0,-1},{-1,0},{1,0} };
  6. void output(){
  7.     int i = 0, j = 0;
  8.     for(i = 0; i < n; i++){
  9.         for(j = 0; j < n; j++){
  10.             if(i == lx && j == ly){
  11.                 putchar('L');
  12.             }
  13.             else{
  14.                 putchar(map[i][j]);
  15.             }
  16.         }
  17.         putchar('\n');
  18.     }
  19. }
  20. void dfs(int x, int y){
  21.     if((x == lx) && (y == ly)){
  22.         //output
  23.         flag = 1;
  24.         output();
  25.         return;
  26.     }
  27.     else{
  28.         if(flag){
  29.             return;
  30.         }
  31.         else{
  32.             int i, dx, dy;
  33.             for(i = 0; i < 4; i++){
  34.                 dx = x + dirs[i][0];
  35.                 dy = y + dirs[i][1];
  36.                 if((dx >= 0) && (dx < n) && (dy >= 0) && (dy < n)
  37.                     && (map[dx][dy] == '0' || map[dx][dy] == 'L')){
  38.                     map[dx][dy] = 'S';
  39.                     dfs(dx, dy);
  40.                     map[dx][dy] = '0';
  41.                 }
  42.             }
  43.         }
  44.     }
  45. }
  46. int main(){
  47.     int i;
  48.     char input[256] = { 0 };
  49.     fgets(input, 255, stdin);
  50.     sscanf(input, "%d", &n);
  51.     fgets(input, 255, stdin);
  52.     sscanf(input, "%d%d%d%d", &gx, &gy, &lx, &ly);
  53.     for(i = 0; i < n; i++){
  54.         fgets(map[i], 255, stdin);
  55.     }
  56.     dfs(gx, gy);
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement