Pagini recente » Cod sursa (job #2496125) | Cod sursa (job #2938299) | Cod sursa (job #1922106) | Cod sursa (job #686549) | Cod sursa (job #1511419)
#include <fstream>
#include <vector>
using namespace std;
FILE *f=freopen("dfs.in","r",stdin);
FILE *g=freopen("dfs.out","w",stdout);
int k=1;
vector <int> G[100001];
int n,m,nod,c[100001];
int viz[100001];
void read();
void DFS(int);
void write();
int main(){
read();
write();
return 0;
}
void read(){
int x=0,y=0;
scanf("%d%d",&n,&m);
for (int i=1;i<=m;i++){
scanf("%d%d",&x,&y);
G[x].push_back(y);
G[y].push_back(x);
}
for (int i=1;i<=n;i++){
if (!viz[i]){
k++;
DFS(i);
}
}
}
void DFS(int x){
int i=0;
viz[x]=k;
for (i=0;i<G[x].size();i++){
int y=G[x][i];
if (!viz[y]){
DFS(y);
}
}
}
void write(){
printf("%d",k-1);
}