Pagini recente » Cod sursa (job #2048087) | Cod sursa (job #2945319) | Cod sursa (job #2337267) | Cod sursa (job #2973658) | Cod sursa (job #1373203)
#include <fstream>
#include <vector>
using namespace std;
#define NMAX 100005
ifstream f("dfs.in");
ofstream g("dfs.out");
int N,M,Count;
bool Used[NMAX];
vector<int> G[NMAX];
void Read(){
f>>N>>M;
int x,y;
for (int i = 1; i <= M; ++i) {
f>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DFS(int Node){
Used[Node] = true;
for (vector<int>::iterator it = G[Node].begin(); it != G[Node].end(); it++ ) {
if (!Used[*it]) {
DFS(*it);
}
}
}
void Solve(){
for (int i = 1; i<= N; i++) {
if (!Used[i]) {
DFS(i);
Count++;
}
}
}
void Write(){
g<<Count;
}
int main() {
Read();
Solve();
Write();
return 0;
}