Advertisement
Guest User

Untitled

a guest
May 30th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin("soarece1.in");
  7. ofstream fout("soarece1.out");
  8.  
  9. int n, m, i, j, xs, ys, xb, yb, b[11][11];
  10. char c[11][11], z;
  11. int dx[4] = {0, 0, 1, -1};
  12. int dy[4] = {1, -1, 0, 0};
  13.  
  14.  
  15. void citire()
  16. {
  17.     fin >> n >> m;
  18.     for(i=1; i<=n; i++)
  19.         for(j=1; j<=m; j++)
  20.             {
  21.                 fin >> z;
  22.                 c[i][j] = z;
  23.                 if(c[i][j] == 'S')
  24.                     xs = i, ys = j;
  25.                 else if(c[i][j] == 'B')
  26.                     xb = i, yb = j;
  27.             }
  28. }
  29.  
  30. void bordare()
  31. {
  32.     int i;
  33.     for(i=0; i<=m+1; i++)
  34.         c[0][i] = c[m+1][1] = '#';
  35.     for(i=0; i<= n+1; i++)
  36.         c[i][0] = c[i][m+1] = '#';
  37. }
  38.  
  39. void afisare()
  40. {
  41.     int i, j;
  42.     for(i=1; i<=n; i++)
  43.     {
  44.         for(j=1; j<=m; j++)
  45.             fout << b[i][j] << " ";
  46.         fout << endl;
  47.     }
  48. }
  49.  
  50. void bkt(int i, int j)
  51. {
  52.     c[i][j] = '#';
  53.     if(i == xb && j == yb)
  54.         afisare();
  55.     b[i][j] = 2;
  56.     if(i == xs && j == ys)
  57.         b[i][j] = 1;
  58.     else for(int k = 0; k<4; k++)
  59.     {
  60.         if(c[i+dx[k]][j+dy[k]] == '_')
  61.             bkt(i+dx[k], j+dy[k]);
  62.         b[i][j] = 0;
  63.         c[i][j] = '_';
  64.     }
  65.  
  66. }
  67.  
  68. int main()
  69. {
  70.     citire();
  71.     bordare();
  72.     bkt(xs, ys);
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement