Pagini recente » Cod sursa (job #2268963) | Cod sursa (job #54548) | Cod sursa (job #2259299)
#include <iostream>
#include <stdio.h>
#include <vector>
#define NMAX 100000
using namespace std;
struct muchie {
int nod ;
};
vector <muchie> mat [ NMAX + 1 ] ;
char folosit [ NMAX + 1 ] ;
void dfs (int i ) {
for (muchie elem : mat[i] ) {
if (folosit[elem.nod] != 1 ) {
dfs (elem.nod) ;
folosit[elem.nod] = 1 ;
}
}
}
int main() {
FILE *fin, *fout ;
fin = fopen ("dfs.in", "r" ) ;
fout = fopen ("dfs.out", "w" ) ;
int n, m, i, a, b, count ;
fscanf (fin, "%d%d", &n, &m ) ;
for (i = 0 ; i < m ; i++ ) {
fscanf (fin, "%d%d", &a, &b ) ;
mat[a].push_back({b}) ;
mat[b].push_back({a}) ;
}
count = 0 ;
for (i = 1 ; i <= n ; i++ ) {
if (folosit[i] != 1 ) {
folosit[i] = 1 ;
dfs(i) ;
count++;
}
}
fprintf (fout, "%d", count ) ;
return 0;
}