Pagini recente » Borderou de evaluare (job #366920) | Cod sursa (job #860349) | Cod sursa (job #2549053) | Cod sursa (job #3195266) | Cod sursa (job #710781)
Cod sursa(job #710781)
#include<fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
struct nod{int val;
nod *next;
};
nod *v[100001],*q;
bool frecv[100001];
int i,a,n,b,m,nr;
inline void bf(int x)
{nod *q = v[x];
if (q)
if (!frecv[q->val])
while (q)
{ frecv[q->val] = true;
bf(q->val);
q = q -> next;
}
}
int main()
{ fin >> n >> m;
for (i=1;i<=m;++i)
{ fin >> a >> b;
q = new nod;
q -> next = v[a];
q -> val = b;
v[a] = q;
q = new nod;
q -> next = v[b];
q -> val = a;
v[b] = q;
}
for (i=1;i<=n;++i)
if (!frecv[i])
{ ++nr;
bf(i);
}
fout << nr;
return 0;
}