Pagini recente » Cod sursa (job #874208) | Cod sursa (job #1371926) | Cod sursa (job #2483328) | Cod sursa (job #1132413) | Cod sursa (job #700945)
Cod sursa(job #700945)
#include<fstream>
#include<cstdio>
#include<vector>
using namespace std;
const int MaxN = 100001;
const char InFile[] = "dfs.in";
const char OutFile[] = "dfs.out";
int N,M,Nrc;
bool viz[MaxN];
vector<int>G[MaxN];
void DFS(int nod)
{
viz[nod] = 1;
vector<int>::iterator it;
for( it = G[nod].begin() ; it != G[nod].end() ; ++it )
if( !viz[*it] )
DFS(*it);
}
int main()
{
ifstream fin( InFile );
ofstream fout( OutFile );
fin >> N >> M;
int i,x,y;
for( i = 0 ; i < M ; ++i )
{
fin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
Nrc = 0;
for( i = 1 ; i <= N ; ++i )
if( !viz[i] )
{
++Nrc;
DFS(i);
}
fout << Nrc << '\n';
fin.close();
fout.close();
return 0;
}