Pagini recente » Cod sursa (job #984356) | Cod sursa (job #1379823) | Cod sursa (job #2070555) | Cod sursa (job #2323349) | Cod sursa (job #2195197)
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f,*g;
int v[100002],a[2][100002],fr[100002];
int m,n;
void citire()
{
int k=0,i,j;
fscanf(f, "%d %d", &n, &m);
for(int l=1; l<=m; l++)
{
fscanf(f, "%d %d", &i, &j);
++k;
a[0][k]=j;
a[1][k]=v[i];
v[i]=k;
++k;
a[0][k]=i;
a[1][k]=v[j];
v[j]=k;
}
}
void dfs(int nod)
{ int ok;
fr[nod]=1;
ok=v[nod];
fr[ok]=1;
while(ok)
{
fr[a[0][ok]]=1;
ok=a[1][ok];
}
}
int main()
{ int nr=0;
f=fopen("dfs.in","r");
g=fopen("dfs.out","w");
citire();
for(int i=1;i<=n;i++)
if(!fr[i])
dfs(i),nr++;
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}