Pagini recente » Cod sursa (job #2850515) | Cod sursa (job #642653) | Cod sursa (job #587223) | Cod sursa (job #1834211) | Cod sursa (job #220331)
Cod sursa(job #220331)
#include<stdio.h>
int m, n, conex=0;
bool v[50000005];
bool viz[100000];
void baga(int a, int b){
scanf("%d", &a);
scanf("%d", &b);
if(a<=b)
v[(a-1)*n+b]=true;
else v[(b-1)*n+b]=true;
}
void dfs(int nod){
viz[nod]=true;
for(int i=1; i<=nod;++i){
if(v[(i-1)*n+nod])
if(!viz[i])
dfs(i);
}
for(int i=nod+1; i<=n; ++i){
if(v[(nod-1)*n+i])
if(!viz[i])
dfs(i);
}
}
int jmen(){
for(int i=1; i<=n; ++i)
if(viz[i]==false){
dfs(i);
conex++;
}
return conex;
}
int main(){
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d", &n);
scanf("%d", &m);
int a, b;
for(int i=1; i<=m; ++i)
baga(a, b);
jmen();
printf("%d", conex);
return 0;
}