fork download
  1. #include <iostream>
  2. #include <utility>
  3. #include <queue>
  4. using namespace std;
  5. int R,C,i,j;
  6. typedef pair<int,int> pii;
  7. char mapa[103][103];
  8. int f[103][103];
  9. int cont = 0;
  10. bool band;
  11. queue<pii> q;
  12. bool bfs(int u, int v){
  13. while(mapa[u][v] != 'G'){
  14. if(band==true && i==u && j==v) return false;
  15. band = true;
  16. cont++;
  17. while(mapa[u-1][v] != 'X' && (u-1)>0){
  18. if(mapa[u-1][v] == 'G') return true;
  19. cont++;
  20. u--;
  21. if(f[u][v] > 2) return false;
  22. f[u][v]++;
  23. }
  24.  
  25. cont++;
  26. while(mapa[u][v-1] != 'X' && (v-1)>0){
  27. if(mapa[u][v-1] == 'G') return true;
  28. cont++;
  29. v--;
  30. if(f[u][v] > 2) return false;
  31. f[u][v]++;
  32. }
  33. cont++;
  34. while((u+1)<=R && mapa[u+1][v] != 'X'){
  35. if(mapa[u+1][v] == 'G') return true;
  36. cont++;
  37. u++;
  38. if(f[u][v] > 2) return false;
  39. f[u][v]++;
  40. }
  41. cont++;
  42. while((v+1)<=C && mapa[u][v+1] != 'X'){
  43. if(mapa[u][v+1] == 'G') return true;
  44. cont++;
  45. v++;
  46. if(f[u][v] > 2) return false;
  47. f[u][v]++;
  48. }
  49. }
  50. return true;
  51. }
  52. int main(){
  53. ios_base::sync_with_stdio(false); cin.tie(0);
  54. int P,Q,U,V;
  55. cin >> R >> C;
  56. cin >> U >> V;
  57. cin >> P >> Q;
  58. for(int x=1;x<=R;x++){
  59. for(int y=1;y<=C;y++){
  60. cin >> mapa[x][y];
  61. }
  62. }
  63. i = U; j = V;
  64. mapa[P][Q] = 'G';
  65. if(bfs(U,V))
  66. cout << cont << "\n";
  67. else
  68. cout << "impossible\n";
  69. }
  70.  
Success #stdin #stdout 0.01s 5280KB
stdin
29 65
3 2
16 52
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X*X.............................................................X
X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X
X.X.X.........................................................X.X
X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X.X.X.....................................................X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
X.X.X.X.XXX...............................................X.X.X.X
X.X.X.X.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
X.X.X.X.XXX.X.........................................XXX.X.X.X.X
X.X.X.X.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X.X.X
X.X.X.X.XXX.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X.X.X
X.X.X.X.XXX.X......................................GX.XXX.X.X.X.X
X.X.X.X.XXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X.X.X
X.X.X.X.XXX...........................................XXX.X.X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
X.X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X.X
X.X.X.X...................................................X.X.X.X
X.X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X.X
X.X.X.......................................................X.X.X
X.X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.X
X.X...........................................................X.X
X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X
X...............................................................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
stdout
754