Pagini recente » Cod sursa (job #1446104) | Cod sursa (job #2076730) | Cod sursa (job #2555487) | Cod sursa (job #1433281) | Cod sursa (job #2465958)
#include <fstream>
#include <vector>
#include <bitset>
#define ARR_MAX 100005
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int V, m, x, y, connected, urm;
vector<int> adj[ARR_MAX];
vector<int> Result;
bitset<ARR_MAX> visited;
void ReadGraph()
{
fin >> V >> m;
for(int i = 0; i < m; i++) {
fin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
}
void DFS(int v)
{
visited[v] = 1;
for(unsigned i = 0; i < adj[v].size(); i++) {
urm = adj[v][i];
if(!visited[urm])
DFS(urm);
}
}
void Write()
{
for(int i = 1; i <= V; i++){
if(!visited[i])
connected++;
DFS(i);
}
fout << connected;
}
int main()
{
ReadGraph();
Write();
}