Pagini recente » Cod sursa (job #2059681) | Cod sursa (job #2327477) | Cod sursa (job #1393943) | Cod sursa (job #2952862) | Cod sursa (job #2321184)
#include <iostream>
#include <fstream>
#include <list>
using namespace std;
void DFS(list<int> *Liste,int v[], int i) {
v[i]=1;
for(list<int>::iterator it=Liste[i].begin(); it!=Liste[i].end();it++) {
if(v[*it] == 0) {
DFS(Liste,v,*it);
}
}
}
int main()
{
ifstream f("dfs.in");
ofstream g("dfs.out");
int m,n;
f>>n>>m;
int a,b;
int k=0;
list<int> *Liste= new list<int>[n+1];
while(m--){
f>>a>>b;
Liste[a].push_back(b);
Liste[b].push_back(a);
}
f.close();
int v[n+1]={0};
for(int i=1;i<n+1;i++) {
if(v[i]==0) {
DFS(Liste,v,i);
k++;
}
}
g<<k;
g.close();
return 0;
}