Pagini recente » Cod sursa (job #2580756) | Cod sursa (job #1864301) | Cod sursa (job #3212407) | Cod sursa (job #242198) | Cod sursa (job #369220)
Cod sursa(job #369220)
#include<fstream>
#include<iostream>
#include <cstdlib>
using namespace std;
struct nod{
int info;
nod *next;};
int n,v[100001];
nod *a[100001];
void dfs(int k,int nrc);
void citire();
void dfs(int k,int nrc);
int main()
{
int max=0,i,nrc;
citire();
nrc=0;
for(i=1;i<=n;i++)
if(v[i]==0)
{
dfs(i,++nrc);
}
ofstream fout("dfs.out");
fout<<nrc;
return 0;
}
void citire()
{
ifstream fin("dfs.in");
int m;
fin>>n>>m;
for(int i=1;i<=n;i++)
a[i]=NULL;
for(;m;m--)
{
int i,j;
fin>>i>>j;
nod*p;
p=new nod;
p->info=j;
p->next=a[i];
a[i]=p;
p=new nod;
p->info=i;
p->next=a[j];
a[j]=p;
}
}
void dfs(int k,int nrc)
{
nod *p = a[k];
v[k] = nrc;
while(p!=NULL)
{
if(v[p->info]==0)
{
v[p->info]=nrc;
dfs(p->info,nrc);
}
p=p->next;
}
}