Alx09

Untitled

Feb 26th, 2019
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <queue>
  4. #include <cstring>
  5. using namespace std;
  6. int n,m;
  7. string Map[101][101],cartela;
  8.  
  9. queue < pair < int, int > > coada;
  10. int startx,starty;
  11. int di[]={ -1, 0, 1, 0};
  12. int dj[]={ 0, 1, 0, -1};
  13. short int c;
  14. int Map2[101][101];
  15. void citire()
  16. {
  17. ifstream f("barlog.in");
  18. f >> c;
  19. f >> n >> m;
  20. for (int i = 1 ;i <=n ; i++)
  21. for (int j=1; j<=m;j++) f >> Map[i][j];
  22.  
  23. f >> startx >> starty;
  24. coada.push(make_pair(startx,starty));
  25. Map2[startx][starty]=1;
  26. f >> cartela;
  27. f.close();
  28. }
  29. bool ok(int i, int j)
  30. {
  31. if (i < 1 || j < 1 || j > m || i > n) return false;
  32. if(Map2[i][j] != 0) return false;
  33.  
  34. return true;
  35. }
  36. bool ok2(int i,int j)
  37. { unsigned int st =0 , dr =0;
  38. unsigned int n = Map[i][j].size(), m = cartela.size();
  39.  
  40. while ( st < n && dr < m)
  41. {
  42. if (Map[i][j][st] == cartela[dr])
  43. {
  44. st ++; dr++ ;
  45. }
  46. else dr ++;
  47. }
  48. if ( st == n )return true;
  49. return false;
  50. }
  51.  
  52. void afisare()
  53. {
  54. ofstream g("barlog.out");
  55. for (int i=1; i<=n;i++)
  56. {
  57. for(int j=1; j <=m; j++)
  58. g <<Map2[i][j]<<' ';
  59.  
  60. g <<'\n';
  61. }
  62. }
  63. void lee()
  64. { string caut;
  65. int i, j,i_urm, j_urm;
  66. while(! coada.empty())
  67. {
  68. i = coada.front().first;
  69. j = coada.front().second;
  70. coada.pop();
  71. for(int directie=0;i < 4 ;i++)
  72. {
  73. i_urm = i + di[directie];
  74. j_urm = j + dj[directie];
  75.  
  76. if(ok(i_urm,j_urm) && ok2(i_urm,j_urm) )
  77. {
  78.  
  79. Map2[i_urm][j_urm] = Map2[i][j] + 1;
  80. coada.push(make_pair(i_urm,j_urm));
  81.  
  82. }
  83. }
  84. }
  85. }
  86. int main()
  87. {
  88. citire();
  89. lee();
  90. afisare();
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment