T3000

Untitled

Jun 4th, 2022
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. using ll = long long;
  5. vector<string> z1;
  6. void solve(vector<string> &z1, ll x1, ll x2, ll i, ll j)
  7. {
  8.     z1.at(i).at(j) = '#';
  9.     bool ok = 0;
  10.     if (i - 1 > -1 && z1.at(i - 1).at(j) == '-')
  11.     {
  12.         solve(z1, x1, x2, i - 1, j);
  13.         ok = 1;
  14.     }
  15.     if (i + 1 < x1 && z1.at(i + 1).at(j) == '-')
  16.     {
  17.         solve(z1, x1, x2, i + 1, j);
  18.         ok = 1;
  19.     }
  20.     if (j + 1 < x2 && z1.at(i).at(j + 1) == '-')
  21.     {
  22.         solve(z1, x1, x2, i, j + 1);
  23.         ok = 1;
  24.     }
  25.     if (j - 1 > -1 && z1.at(i).at(j - 1) == '-')
  26.     {
  27.         solve(z1, x1, x2, i, j - 1);
  28.         ok = 1;
  29.     }
  30. }
  31. int main()
  32. {
  33.     ll ww = 1;
  34.     ll x1, x2;
  35.     while (cin >> x1 >> x2)
  36.     {
  37.         ll cnt = 0;
  38.  
  39.         for (int i = 0; i < x1; i++)
  40.         {
  41.             string x;
  42.             cin >> x;
  43.             z1.push_back(x);
  44.         }
  45.         for (int i = 0; i < x1; i++)
  46.         {
  47.             for (int j; j < x2; j++)
  48.             {
  49.                 if (z1.at(i).at(j) == '-')
  50.                 {
  51.                     cnt += 1;
  52.                     solve(z1, x1, x2, i, j);
  53.                 }
  54.             }
  55.         }
  56.         cout << "Case " << ww << ": " << cnt;
  57.         ww += 1;
  58.     }
  59.  
  60.     return 0;
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment