void dfs4(int v, int matrix[100][100], int n, bool visited[], int &count) {
visited[v] = true; // помечаем вершину как посещённую
count++; // увеличиваем счётчик (мы нашли новую вершину в компоненте)
// Перебираем все вершины i от 0 до n-1
for (int i = 0; i < n; i++) {
// Если есть ребро из v в i (matrix[v][i] == 1) и i ещё не посещена
if (matrix[v][i] == 1 && !visited[i]) {
dfs4(i, matrix, n, visited, count); // рекурсивно обходим i
}
}
}