#include <iostream> using namespace std; int was[100], n, a, b, ans; int g[100][100]; int dfs(int v) { was[v] = 1; for (auto to : g[v]) { if (was[to] == 0) { dfs(to); } } return 0; } int main() { cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a >> b; if (a == 1) { g[a][b] = g[b][a] = 1; } } } for (int i = 0; i < n; i++) { if (was[i] == 0) { dfs(i); ans++; } } cout << ans; return 0; } C #include <iostream> using namespace std; int was[100], n, a, b, ans; int g[100][100]; int dfs(int v) { was[v] = 1; for (auto to : g[v]) { if (was[to] == 0) { dfs(to); } } return 0; } int main() { cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a >> b; if (a == 1) { g[a][b] = g[b][a] = 1; } } } for (int i = 0; i < n; i++) { if (was[i] == 0) { dfs(i); ans++; } } cout << ans; return 0; } Почему анс не выводит вообще должен выводить каждый компонент связности, но пока даже анс не выводит
oriole, проходится в глубину графа пока не дойдет до конца, анс помечает каждый полный проход. но мне кажется дфс пишется по-другому