Pagini recente » Cod sursa (job #1277253) | Cod sursa (job #425949) | Cod sursa (job #2204966) | Cod sursa (job #201975) | Cod sursa (job #1173514)
#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;}