Pagini recente » Cod sursa (job #2443914) | Cod sursa (job #713808) | Cod sursa (job #318625) | Cod sursa (job #1310069) | Cod sursa (job #1336039)
#include <cstdio>
#include <vector>
#define NMAX 100004
using namespace std;
FILE*fin=fopen("dfs.in", "r");
FILE*fout=fopen("dfs.out", "w");
int n, m;
vector <int> A[NMAX];//matrice de adiacenta
bool uz[NMAX];
void citire();
void dfs(int vf);
int main()
{
int i, nr=0;
citire();
for(i=1;i<=n;i++)
if(!uz[i])
{
dfs(i);
++nr;
}
fprintf(fout, "%d\n", nr);
return 0;
}
void citire()
{
int i, x, y;
fscanf(fin, "%d %d", &n, &m);
for(i=1;i<=m;i++)
{
fscanf(fin, "%d %d", &x, &y);
A[x].push_back(y);
A[y].push_back(x);
}
}
void dfs(int vf)
{
int i, lg;
uz[vf]=1;
lg=A[vf].size();
for(i=0;i<lg;i++)
if(!uz[A[vf][i]])
dfs(A[vf][i]);
}