Pagini recente » Cod sursa (job #2617909) | Cod sursa (job #79012) | Cod sursa (job #3153473) | Cod sursa (job #163101) | Cod sursa (job #3251173)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
bool vizitat[1000];
struct node
{
int x;
node *v;
};
node *noduri[100005];
void add(node *&dest, int val)
{
node *p;
p = new node;
p->x = val;
p->v = dest;
dest = p;
}
void dfs(int nod)
{
vizitat[nod] = true;
node *i;
for (node *i = noduri[nod]; i != NULL; i = i->v)
{
if (vizitat[i->x] == false)
dfs(i->x);
}
}
int main()
{
int n, m;
in >> n >> m;
for (int i = 0; i < m; i++)
{
int x, y;
in >> x >> y;
add(noduri[x], y);
add(noduri[y], x);
}
int nr = 0;
for (int i = 1; i <= n; i++)
{
if (vizitat[i] == false)
{
dfs(i);
nr++;
}
}
out << nr;
return 0;
}