Pagini recente » Cod sursa (job #1663392) | Cod sursa (job #181183) | Cod sursa (job #1730079) | Cod sursa (job #1509792) | Cod sursa (job #1173508)
#include<fstream>
using namespace std;
ifstream f("dfs.in",ios::in);
ofstream g("dfs.out",ios::out);
struct nod{
int info; nod* ad;};
nod *vf,*sf,*p;
int s[1000001],n,x,y,m,i;
nod *v[100001];
void adaugare(nod *&vf, nod *&sf, int nr)
{
if(vf==0)
{
nod* p;
p=new nod;
p->info=nr;
p->ad=0;
sf=p;}
else
{
nod* p;
p=new nod;
sf->ad=p;
p->info=nr;
p->ad=0;
sf=p;}}
void citire()
{
f>>n;
f>>m;
for(i=1;i<=m;i++)
{
f>>x;
f>>y;
adaugare(v[x],sf,x);
adaugare(v[y],sf,y);}}
void df(int x)
{
nod* p;
s[x]=1;
for(p=v[x];p!=NULL;p=p->ad)
if(s[p->info]==0)
df(p->info);}
int main()
{
int c,i;
citire();
c=0;
for(i=1;i<=n;i++)
if(s[i]==0)
{
c++;
df(i);
}
g<<c;
return 0;}