Lines (2)
а в этой задаче есть чекер? или ответ решений просто сравнивается с ответом автора? так как тут может быть много правильных решений, вот даже с тестового примера: 1) ..++. .++.. 0+000 .++++ ....@ 2) ...+. .+++. 0+000 .++++ ....@ 3) ..++. .++.. 0+000 .+++. ...+@ 4)...
include <iostream>
include <vector>
using namespace std;
void dfs(int i, int j, int m, int n, vector<vector<char>>& paper) { if (i < 0 || j < 0 || i >= m || j >= n || paper[i][j] != '#') { return; }
paper[i][j] = '.';
dfs(i + 1, j, m, n, paper);
dfs(i - 1, j, m, n, paper);
dfs(i, j + 1, m, n, paper);
dfs(i, j - 1, m, n, paper);
}
int countPieces(int m, int n, vector<vector<char>>& paper) { int count = 0; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (paper[i][j] == '#') { dfs(i, j, m, n, paper); count++; } } } return count; }
int main() { int m, n; cin >> m >> n;
vector<vector<char>> paper(m, vector<char>(n));
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
cin >> paper[i][j];
}
}
cout << countPieces(m, n, paper) << endl;
return 0;
}