Pagini recente » Statistici 7A Daria Palangean (DanaPalangean) | Istoria paginii utilizator/anamaria240 | Cod sursa (job #356746) | Cod sursa (job #613960) | Cod sursa (job #942992)
Cod sursa(job #942992)
#include <cstdio>
using namespace std;
struct nod {
int val;
nod *adr;
};
nod *v[100005];
int n,m;
bool viz[100005];
int componente;
void insert(int a,int b) {
if (v[a] == NULL) {
nod *nou = new nod;
nou->val = b;
nou->adr = NULL;
v[a] = nou;
} else {
nod *nou = new nod;
nou->val = b;
nou->adr = v[a];
v[a] = nou;
}
}
void fill(int a) {
nod *crt;
crt = v[a];
viz[a] = true;
while (crt != NULL) {
if (!viz[crt->val]) fill(crt->val);
crt = crt->adr;
}
}
int main() {
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d",&n,&m);
for (int i=1;i<=n;i++) v[i] = NULL;
for (int i=1;i<=m;i++) {
int a,b;
scanf("%d %d",&a,&b);
insert(a,b);
insert(b,a);
}
for (int i=1;i<=n;i++) if (!viz[i]) {
componente++;
fill(i);
}
printf("%d\n",componente);
return 0;
}