Pagini recente » Cod sursa (job #1630592) | Cod sursa (job #2808767) | Cod sursa (job #2559639) | Cod sursa (job #1260954) | Cod sursa (job #1906731)
#include <fstream>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
struct el{int nod; int urm;};
el a[1000001];
int l[100001],n,m,i,j,k,nd,viz[200001],x,y,s,z,v[200001];
void ad(int x, int y)
{
k++;
a[k].nod=y;
a[k].urm=l[x];
l[x]=k;
}
void parc(int nod, int z)
{
viz[nod]=1;
int i=1;
v[1]=nod;
while(i)
{
int poz=l[v[i]];
int ok=0;
while(poz)
{
if(viz[a[poz].nod]==0)
{
ok=1;
i++;
viz[a[poz].nod]=1;
v[i]=a[poz].nod;
poz=0;
}
else
poz=a[poz].urm;
}
if(ok==0)
i--;
}
}
int main()
{
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
ad(x,y);
ad(y,x);
}
for(i=1;i<=n;i++)
if(viz[i]==0)
{
z++;;
parc(i,z);
}
g<<z;
return 0;
}