Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <algorithm>using namespace std;int N, M;int starti, startj, endi, endj;vector<vector<char>> numLst(501, vector<char>(501));vector<vector<int>> ans(501, vector<int>(501, 0));void dfs(int i, int j, int cnt) {starti = min(i, starti);startj = min(j, startj);endi = max(i, endi);endj = max(j, endj);ans[i][j] = cnt;if (j > 0 && numLst[i][j - 1] == '1' && !ans[i][j - 1])dfs(i, j - 1, cnt);if (j < M - 1 && numLst[i][j + 1] == '1' && !ans[i][j + 1])dfs(i, j + 1, cnt);if (i > 0 && numLst[i - 1][j] == '1' && !ans[i - 1][j])dfs(i - 1, j, cnt);if (i < N - 1 && numLst[i + 1][j] == '1' && !ans[i + 1][j])dfs(i + 1, j, cnt);}int main(){cin >> N >> M;for (int i = 0; i < N; ++i)for (int j = 0; j < M; ++j)cin >> numLst[i][j];int cnt = 1;