Advertisement
hung_mine

525D

Oct 11th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. /// from HUNG MINE with love <3
  4. int a[3001][3001], n, m;
  5. void dfs (int x, int y) {
  6.       if (x < 1 || y < 1 || x > n || y > m) return;
  7.       int d = 0;
  8.       for (int i = -1; i <= 0; ++ i) {
  9.             for (int j = -1; j <= 0; ++ j) {
  10.                   if (x + i < 1 || y + j < 1) return;
  11.                   else if (a[x + i][y + j] == 0) {
  12.                         ++ d;
  13.                   }
  14.             }
  15.       }
  16.       //cout << x << " " << y << " " << d << "\n";
  17.       if (d != 3) return;
  18.       for (int i = -1; i <= 0; ++ i) {
  19.             for (int j = -1; j <= 0; ++ j) {
  20.                   a[x + i][y + j] = 0;
  21.             }
  22.       }
  23.       for (int i = -1; i <= 1; ++ i) {
  24.             for (int j = -1; j <= 1; ++ j) {
  25.                   dfs (x + i, y + j);
  26.             }
  27.       }
  28. }
  29. int main () {
  30.       if (fopen ("test.inp", "r")) {
  31.             freopen ("test.inp", "r", stdin);
  32.       }
  33. //      else {
  34. //            freopen (".inp", "r", stdin);
  35. //            freopen (".out", "w", stdout);
  36. //      }
  37.  
  38.       ios_base :: sync_with_stdio (0);
  39.       cin.tie (0);
  40.       cout.tie (0);
  41.       cin >> n >> m;
  42.       for (int i = 1; i <= n; ++ i) {
  43.             for (int j = 1; j <= m; ++ j) {
  44.                   char c;
  45.                   cin >> c;
  46.                   a[i][j] = (c == '*');
  47.             }
  48.       }
  49.       for (int i = 1; i <= n; ++ i) {
  50.             for (int j = 1; j <= m; ++ j) {
  51.                   dfs (i, j);
  52.             }
  53.       }
  54.       for (int i = 1; i <= n; ++ i) {
  55.             for (int j = 1; j <= m; ++ j) {
  56.                   if (a[i][j] == 0) {
  57.                         cout << ".";
  58.                   }
  59.                   else {
  60.                         cout << "*";
  61.                   }
  62.             }
  63.             cout << "\n";
  64.       }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement