Pagini recente » Cod sursa (job #225162) | Cod sursa (job #3200284) | Cod sursa (job #161304) | Cod sursa (job #340592) | Cod sursa (job #710715)
Cod sursa(job #710715)
#include <cstdio>
#include <vector>
using namespace std;
#define nmax 101000
class graf{
public:
vector<int> adj[nmax];
void add(int a, int b);
};
void graf::add(int a, int b){
adj[a].push_back(b);
adj[b].push_back(a);
}
graf G;
int N,M,a,b,nr;
int viz[nmax];
void dfs(int nod){
if (viz[nod])
return ;
viz[nod]=1;
vector<int> :: iterator it;
for (it=G.adj[nod].begin();it!=G.adj[nod].end();++it)
if (!viz[*it])
dfs(*it);
}
int main(){
int i;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d %d", &N, &M);
while(M--){
scanf("%d %d", &a, &b);
G.add(a,b);
}
nr=0;
for (i=1;i<=N;++i)
if (!viz[i]){
nr++;
dfs(i);
}
printf("%d\n", nr);
return 0;
}