Pagini recente » Cod sursa (job #1096585) | Cod sursa (job #907849) | Cod sursa (job #2751275) | Cod sursa (job #945969) | Cod sursa (job #670567)
Cod sursa(job #670567)
#include <iostream>
#include <fstream>
#define maxN 100005
#define maxM 10000005
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
typedef struct graf
{
int nod;
graf *next;
}grf;
grf *list[maxM];
int n,m,saw[maxN],nr=0;
void addN(int x,int y)
{
grf *q;
q=new graf;
q->nod=y;
q->next=list[x];
list[x]=q;
}
void read_ini()
{
f>>n; f>>m;
int i,a,b;
for(i=1; i<=m ;i++)
{
f>>a; f>>b;
addN(a,b);
addN(b,a);
}
for(i=1; i<=n ;i++)
saw[i]=0;
}
void p_dfs(int s)
{
grf *q;
saw[s]=1;
q=list[s];
while(q)
{
if(!saw[q->nod])
p_dfs(q->nod);
q=q->next;
}
}
int main()
{
read_ini();
for(int i=1; i<=n ;i++)
{
if(!saw[i])
{
nr++;
p_dfs(i);
}
}
g<<nr;
return 0;
}