Pagini recente » Borderou de evaluare (job #2012135) | Cod sursa (job #851397) | Clasament winner17 | Borderou de evaluare (job #2012304) | Cod sursa (job #1504478)
#include <iostream>
#include <cstring>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int Nmax=100005;
vector <int> G[Nmax];
queue <int> Q;
int N,M;
int Use[Nmax];
void read()
{
fin>>N>>M;
for(int i=1;i<=M;i++)
{
int x,y;
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x); // in lista de adiacenta a lui y il punem pe x
}
}
void dfs(int Nod)
{
Use[Nod]=1;
for(int i=0;i<(int)G[Nod].size();i++)
{
int vecin=G[Nod][i];
if(Use[vecin]==0)
dfs(vecin);
}
}
int main()
{
read();
int nr_insule=0;
for(int i=1;i<=N;i++)
{
if(!Use[i])
{
dfs(i);
nr_insule++;
}
}
cout<<nr_insule;
return 0;
}