Pagini recente » Cod sursa (job #2391762) | Borderou de evaluare (job #1722654) | Borderou de evaluare (job #2019834) | Borderou de evaluare (job #2860904) | Cod sursa (job #1817500)
#include <stdio.h>
#include <vector>
using namespace std;
vector <int> v[100001];
int folosit[100001];
void dfs(int x) {
folosit[x] = 1;
int neigh;
for(int i = 0;i < (int)v[x].size();i++) {
neigh = v[x][i];
if(folosit[neigh] == 0)
dfs(neigh);
}
}
int main() {
FILE *fin, *fout;
fin = fopen("dfs.in", "r");
fout = fopen("dfs.out", "w");
int n, m;
fscanf(fin, "%d%d", &n, &m);
int i;
for(i = 0;i < m;i++) {
int auxx, auxy;
fscanf(fin, "%d%d", &auxx, &auxy);
v[auxx].push_back(auxy);
v[auxy].push_back(auxx);
}
int comp = 0;
for(i = 1;i <= n;i++)
if(folosit[i] == 0) {
dfs(i);
comp++;
}
fprintf(fout, "%d", comp);
fclose(fin);
fclose(fout);
return 0;
}