Pagini recente » Cod sursa (job #1928506) | Cod sursa (job #3291419) | Cod sursa (job #940000) | Cod sursa (job #3188993) | Cod sursa (job #153420)
Cod sursa(job #153420)
#include <cstdio>
#include <vector>
#define INF "dfs.in"
#define OUF "dfs.out"
#define pb(arg) push_back(arg)
#define sz(arg) arg.size()
using namespace std;
const int NMAX=100002;
vector<int> a[NMAX];
char viz[NMAX]={0};
void dfs(int nd)
{
int i,nb;
viz[nd]=1;
for(i=0;i<sz(a[nd]);++i)
if(!viz[a[nd][i]])
{
nb=a[nd][i];
dfs(nb);
}
}
int main()
{
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
int i,aa,bb,n,m,cc=0;
fscanf(in,"%d%d",&n,&m);
for(i=1;i<=m;++i)
{
fscanf(in,"%d%d",&aa,&bb);
a[aa].pb(bb);
a[bb].pb(aa);
}
for(i=1;i<=n;++i) if(!viz[i]) ++cc,dfs(i);
fprintf(out,"%d\n",cc);
fclose(in);fclose(out);
return 0;
}