Pagini recente » Cod sursa (job #2811615) | Cod sursa (job #1575193) | Cod sursa (job #2461547) | Istoria paginii runda/simulareoji2015p2 | Cod sursa (job #2789558)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
const int NMAX = 100003;
vector<int>vecini[NMAX];
int culoare[NMAX];
void dfs(int nod, int k)
{
culoare[nod] = k;
int l = vecini[nod].size();
for(int i=0; i<l; i++)
{
int x = vecini[nod][i];
if(culoare[x] == 0)
{
dfs(x, k);
}
}
}
int main()
{
int N, M;
in>>N>>M;
for(int i=0;i<M;i++)
{
int x,y;
in>>x>>y;
vecini[x].push_back(y);
vecini[y].push_back(x);
}
/*for(int i=1; i<=N; i++)
{
cout<<i<<": ";
int l=vecini[i].size();
for(int j=0;j<l;j++)
{
cout <<vecini[i][j]<<' ';
}
cout<<endl;
}
cout<<N<<' '<<M;*/
int k=0;
for(int i=1; i<=N; i++)
{
if(culoare[i] == 0)
{
k++;
dfs(i, k);
}
}
out<<k;
return 0;
}