Pagini recente » Cod sursa (job #2436831) | Cod sursa (job #1796002) | Cod sursa (job #952491) | Cod sursa (job #2880372) | Cod sursa (job #698897)
Cod sursa(job #698897)
#include <cstdio>
#include <vector>
using namespace std;
vector <int> noduri[100001];
int n, m, x, y, nr, vizitat[100001], comp[100001];
void dfs(int x)
{
if(vizitat[x]) return;
vizitat[x] = 1;
comp[x] = nr;
for(int i = 0; i < noduri[x].size(); ++i) {
dfs(noduri[x][i]);
}
}
int main()
{
int i;
freopen ("dfs.in", "r", stdin);
freopen ("dfs.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= m; ++i) {
scanf("%d %d", &x, &y);
noduri[x].push_back(y);
noduri[y].push_back(x);
}
for(i = 1; i <= n; ++i) {
if(!vizitat[i]) {
++nr;
dfs(i);
}
}
printf("%d\n", nr);
/* for(i = 1; i <= n; ++i)
printf("%d ", comp[i]);*/
return 0;
}