Cod sursa(job #2032185)
| Utilizator | Data | 4 octombrie 2017 17:50:53 | |
|---|---|---|---|
| Problema | Parcurgere DFS - componente conexe | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
#include <fstream>
#include <vector>
#define NM 100002
using namespace std;
vector <int> gr[NM];
int n, m, i, a, b, v[NM], nrc, tv;
void dfs(int n)
{
v[n] = 1;
tv++;
for(auto j:gr[n])
if(v[j] == 0)
dfs(j);
}
int main()
{
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
fin >> n >> m;
for(i = 1; i <= m; i++)
{
fin >> a >> b;
gr[a].push_back(b);
gr[b].push_back(a);
}
while(tv < n)
{
for(i = 1; v[i]; i++);
dfs(i);
nrc++;
}
fout << nrc;
return 0;
}
