#include #include using namespace std; int m = 5, n = 5; vector> s; vector> visited; vector> ids; void dfs(int x, int y, int id){ if(x < 0 || x >= m || y < 0 || y >=n) return; if(s[x][y] != '@') return; if(visited[x][y] == true) return; visited[x][y] = true; ids[x][y] = id; dfs(x - 1, y - 1, id + 1); dfs(x - 1, y, id + 1); dfs(x - 1, y + 1, id + 1); dfs(x, y - 1, id + 1); dfs(x, y + 1, id + 1); dfs(x + 1, y - 1, id + 1); dfs(x + 1, y, id + 1); dfs(x + 1, y + 1, id + 1); cout << id << " "; } int main(){ s.resize(m); visited.assign(m, vector(n, false)); ids.assign(m, vector(n, 0)); char tmp; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ cin >> tmp; s[i].push_back(tmp); } } for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(!visited[i][j] && s[i][j] == '@') dfs(i, j, 1); } } cout << endl; int max = -1; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(ids[i][j] > max) max = ids[i][j]; } } cout << max << endl; }