Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include<cstdio>
  2. #include<queue>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     pair<int, int> obecny;
  9.     pair<int,int> lista;
  10.     queue<pair<int, int> kolejka;
  11.     int x, y, licznik = 0;
  12.  
  13.     scanf("%d %d", &x, &y);
  14.     char labirynt[x][y];
  15.     bool odwiedzone[x][y];
  16.  
  17.     for(int i = 0; i < x; i++)
  18.         for(int j = 0; j < y; j++)
  19.             odwiedzone[i][j] = false;
  20.  
  21.     for(int i = 0; i < x; i++)
  22.         for(int j = 0; j < y; j++)
  23.             if(labirynt[i][j] == 's')
  24.             {
  25.                 kolejka.push(labirynt[i][j]);
  26.                 while(!kolejka.empty())
  27.                 {
  28.                     obecny = kolejka.front();
  29.                     kolejka.pop();
  30.                     odwiedzone[obecny] = true;
  31.                     for(int n = 0; n < x; n++)
  32.                         for(int m = 0; m < y; m++)
  33.                         {
  34.  
  35.                             if(labirynt[x-1][y] == 'O' && odwiedzone[x+1][y] == false) { kolejka.push(labirynt[x-1][y]) odwiedzone[x-1][y] = true; }
  36.                             if(labirynt[x][y-1] == 'O' && odwiedzone[x+1][y] == false) { kolejka.push(labirynt[x][y-1]) odwiedzone[x][y-1] = true; }
  37.                             if(labirynt[x+1][y] == 'O' && odwiedzone[x+1][y] == false) { kolejka.push(labirynt[x+1][y]) odwiedzone[x+1][y] = true; }
  38.                             if(labirynt[x][y+1] == 'O' && odwiedzone[x+1][y] == false) { kolejka.push(labirynt[x][y+1]) odwiedzone[x][y+1] = true; }
  39.                         }
  40.                     licznik++;
  41.                 }
  42.  
  43.                 if(licznik > 0)
  44.                     printf("Tak ", licznik);
  45.                 else
  46.                     printf("Brak drogi");
  47.                 break;
  48.             }
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement