Pagini recente » Cod sursa (job #237410) | Cod sursa (job #1215059) | Cod sursa (job #1919579) | Cod sursa (job #1334156) | Cod sursa (job #2128934)
#include <bits/stdc++.h>
using namespace std;
typedef struct Lista
{
int val;
Lista *next;
} lista;
bool viz[5000];
lista *v[5000];
void add(lista *&stiva, int data)
{
lista *tmp = new lista;
tmp->next = stiva;
tmp->val = data;
stiva = tmp;
}
void dfs(int n)
{
viz[n] = 1;
lista *tmp = v[n];
while (tmp != NULL)
{
if (viz[tmp->val] == 0)
dfs(tmp->val);
tmp = tmp->next;
}
}
int main()
{
ifstream cin("dfs.in");
ofstream cout("dfs.out");
int n, m;
cin >> n >> m;
for (int i = 0; i < m; i++)
{
int x, y;
cin >> x >> y;
add(v[x - 1], y - 1);
add(v[y - 1], x - 1);
}
int k = 0;
for (int i = 0; i < n; i++)
if (viz[i] == 0)
{
k++;
dfs(i);
}
cout << endl << k;
}