Pagini recente » Cod sursa (job #2938967) | Cod sursa (job #761601) | Cod sursa (job #2804965) | Cod sursa (job #1219907) | Cod sursa (job #1349442)
#include <fstream>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
#define N 100001
struct graf{
int nod;
graf *next;} *A[N];
int n, m, a, b, sol;
bool viz[N];
void add(int a, int b)
{
graf *q = new graf;
q -> nod = b;
q -> next = A[a];
A[a] = q;
}
void citire()
{
in >> n >> m;
for(int i=1;i<=m;i++)
in >> a >> b, add(a,b), add(b,a);
}
void dfs(int x)
{
viz[x] = true;
for(graf *i = A[x]; i!=NULL; i = i->next)
if(!viz[i->nod])
dfs(i->nod);
}
void rezolvare()
{
for(int i=1;i<=n;i++)
if(!viz[i])
{
sol ++;
dfs(i);
}
}
int main()
{
citire();
rezolvare();
out << sol;
in.close();
out.close();
return 0;
}