Pagini recente » Cod sursa (job #1122987) | Cod sursa (job #2727744) | Cod sursa (job #1175405) | Cod sursa (job #1340366) | Cod sursa (job #2036636)
#include<iostream>
#include<fstream>
#include<iomanip>
#include<vector>
using namespace std;
ifstream in ("dfs.in");
ofstream out ("dfs.out");
vector <int> v[20],viz,coada;
int N,M,u,p;
void citire()
{
int X,Y,i,j;
in>>N>>M;
for(i=1;i<=N;i++)
v[i].push_back(0);
for(i=1;i<=M;i++)
{
in>>X>>Y;
v[X].push_back(Y);
v[Y].push_back(X);
}
}
void declarare_viz_coada()
{
int i;
for(i=0;i<=N;i++)
{
viz.push_back(0);
coada.push_back(0);
}
}
int exista_nod_nevizitat()
{
int i;
for(i=1;i<=N;i++)
if(viz[i]==0)
return i;
return 0;
}
void parcurgere_latime(int &p,int &u,int x)
{
int i;
coada[u]=exista_nod_nevizitat();
viz[p]=x;
u++;
while(p<=u)
{
for(i=1;i<v[p].size();i++)
{
if(viz[v[p][i]]==0)
{
coada[u]=v[p][i];
u++;
viz[v[p][i]]=x;
}
}
p++;
}
}
int main()
{
int x=0,i;
u=1;p=1;
citire();
declarare_viz_coada();
while(exista_nod_nevizitat())
{
p=exista_nod_nevizitat();
parcurgere_latime(p,u,x);
x++;
}
out<<x;
return 0;
}