Advertisement
Guest User

Untitled

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