Pagini recente » Cod sursa (job #300820) | Cod sursa (job #209776) | Cod sursa (job #2095593) | Cod sursa (job #2671203) | Cod sursa (job #1420665)
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#define NMAX 100001
enum {WHITE, BLACK};
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector<list<int> > l(NMAX);
vector<bool> pass(NMAX);
int n;
int m;
inline void read() {
fin >> n >> m;
for(int i = 1; i <= m; i++) {
int src, dst;
fin >> src >> dst;
l[src].push_back(dst);
l[dst].push_back(src);
}
fin.close();
}
void dfs(int node) {
pass[node] = BLACK;
for(int &n: l[node]) {
if(pass[n] == WHITE) {
dfs(n);
}
}
}
inline int findCC() {
int cc = 0;
for(int i = 1; i <= n; i++) {
if(pass[i] == WHITE) {
dfs(i);
cc++;
}
}
return cc;
}
int main()
{
read();
fout << findCC() << endl;
fout.close();
return 0;
}