Pagini recente » Cod sursa (job #1896652) | Cod sursa (job #127990) | Cod sursa (job #481848) | Cod sursa (job #1805708) | Cod sursa (job #2861372)
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
#define NMax 100005
using namespace std;
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
int N;
bool VIZ[NMax];
vector <int> Muchie[NMax];
void DFS(int nodStart)
{
stack <int> Stiva;
Stiva.push(nodStart);
while( !Stiva.empty() )
{
int nodCurent = Stiva.top();
Stiva.pop();
for(unsigned int i = 0; i < Muchie[nodCurent].size(); ++ i)
if(VIZ[Muchie[nodCurent][i]] == false)
{
VIZ[Muchie[nodCurent][i]] = true;
Stiva.push(Muchie[nodCurent][i]);
}
}
}
int main()
{
int M, X, Y;
fin >> N >> M;
for(int i = 1; i <= M; ++ i)
{
fin >> X >> Y;
Muchie[X].push_back(Y);
Muchie[Y].push_back(X);
}
int comp_conexe = 0;
for(int i = 1; i <= N; ++ i)
if(VIZ[i] == false)
{
comp_conexe ++;
DFS(i);
}
fout << comp_conexe;
return 0;
}