Pagini recente » Cod sursa (job #857119) | Cod sursa (job #901992) | Cod sursa (job #1644357) | Cod sursa (job #2088604) | Cod sursa (job #2168240)
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
struct node
{
int x;
node * next;
};
void dfs(int);
void citire();
void conex();
void insertNode(node * &, int);
int n, m;
bool uz[100005];
node * G[100005];
int main()
{
citire();
conex();
return 0;
}
void dfs(int x)
{
uz[x] = true;
for (node * p = G[x]; p; p = p->next)
if (!uz[p->x])
dfs(p->x);
}
void conex()
{
int comp = 0;
for (int i = 1; i <= n; i++)
if (!uz[i])
{
dfs(i);
comp++;
}
fout << comp << '\n';
}
void insertNode(node * & list, int x)
{
node * p = new node;
p->x = x;
p->next = list;
list = p;
}
void citire()
{
fin >> n >> m;
int x, y;
for (int i = 1; i <= m; i++)
{
fin >> x >> y;
insertNode(G[x], y);
insertNode(G[y], x);
}
}