Pagini recente » Cod sursa (job #1467619) | Cod sursa (job #286955) | Cod sursa (job #1212858) | Cod sursa (job #3264784) | Cod sursa (job #1649945)
//http://www.infoarena.ro/problema/dfs - 30pct
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
#define MAXN 100050
int n;
bitset <MAXN> viz;
vector <int> G[MAXN];
void Read()
{
int x, y, m;
f >> n >> m;
for(int i = 1; i <= m; i++)
f >> x >> y, G[x].push_back(y), G[y].push_back(x);
}
void DFS(int nod)
{
int j;
viz[nod] = 1;
for(int i = 0; i < G[nod].size(); i++)
{
j = G[nod][i];
if(!viz[j])
DFS(j);
}
}
int main()
{
int k = 0;
Read();
for(int i = 0; i < n; i++)
if(!viz[i])
DFS(i), k++;
g << k;
return 0;
}