Advertisement
sherry_ahmos

Untitled

Oct 14th, 2022
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <vector>
  4. #include <string>
  5. #include <queue>
  6. #include <map>
  7. #include <set>
  8. #include <string>
  9. #include <algorithm>
  10. #include <cmath>
  11. #include <unordered_map>
  12. #include <unordered_set>
  13. using namespace std;
  14.  
  15. #define ll long long
  16. #define nl endl
  17. #define cy cout << "YES\n"
  18. #define cn cout << "NO\n"
  19. #define sz s.size()
  20. #define allv v.begin(), v.end()
  21. void sherry()
  22. {
  23.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  24. #ifndef ONLINE_JUDGE
  25.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  26. #endif
  27. }
  28. ll n, m;
  29. int x1, x2;
  30. int y1, y2;
  31. vector<vector<char>> v;
  32. bool valid(int h, int k)
  33. {
  34.     if (h >= n || k >= m)
  35.         return 0;
  36.     else if (h == x2 && k == y2)
  37.         return 1;
  38.     else
  39.     {
  40.         if (v[h + 1][k] == '.' && v[h][k + 1] == '.')
  41.         {
  42.             return valid(h + 1, k) || valid(h, k + 1);
  43.         }
  44.         else if (v[h + 1][k] == '.')
  45.             return v[h + 1][k];
  46.         else if (v[h][k + 1] == '.')
  47.             return valid(h, k + 1);
  48.         else
  49.             return 0;
  50.     }
  51. }
  52. void solve()
  53. {
  54.     cin >> n >> m;
  55.     vector<char> c(m);
  56.     for (int i = 0; i < n; i++)
  57.     {
  58.         for (int j = 0; j < m; j++)
  59.         {
  60.             cin >> c[i];
  61.             if (c[i] == 'S')
  62.             {
  63.                 x1 = i;
  64.                 y1 = j;
  65.             }
  66.             else if (c[i] == 'E')
  67.             {
  68.                 x2 = i;
  69.                 y2 = j;
  70.             }
  71.         }
  72.         v.push_back(c);
  73.         c.clear();
  74.     }
  75.     if (valid(x1, y1))
  76.         cy;
  77.     else
  78.         cn;
  79. }
  80. int main()
  81. {
  82.     sherry();
  83.     ll t = 1;
  84.     // cin >> t;
  85.     while (t--)
  86.     {
  87.         solve();
  88.     }
  89.     return 0;
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement