Submission #487601

# Submission time Handle Problem Language Result Execution time Memory
487601 2021-11-16T09:26:49 Z KazamaHoang Emacs (COCI20_emacs) C++14
50 / 50
1 ms 336 KB
#include <bits/stdc++.h>

using namespace std;

const int dx[] = {0, 0, -1, 1};
const int dy[] = {1, -1, 0, 0};

int n, m;
char a[105][105];
queue<pair<int, int>> qu;
bool visited[105][105];
int result = 0;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    for (int i = 1; i <= n; ++ i)
        for (int j = 1; j <= m; ++ j)
            cin >> a[i][j];
    for (int i = 1; i <= n; ++ i)
        for (int j = 1; j <= m; ++ j)
            if (visited[i][j] == false && a[i][j] == '*') {
                visited[i][j] = true;
                qu.push({i, j});
                ++ result;
                while (!qu.empty()) {
                    pair<int, int> cur = qu.front();
                    qu.pop();
                    for (int dir = 0; dir < 4; ++ dir) {
                        pair<int, int> tmp = {cur.first + dx[dir], cur.second + dy[dir]};
                        if (tmp.first >= 1 && tmp.first <= n && tmp.second >= 1 && tmp.second <= m && !visited[tmp.first][tmp.second] && a[tmp.first][tmp.second] == '*') {
                            visited[tmp.first][tmp.second] = true;
                            qu.push(tmp);
                        }
                    }
                }
            }
    cout << result;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 0 ms 336 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 0 ms 208 KB Output is correct
7 Correct 0 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 1 ms 336 KB Output is correct