Pagini recente » Cod sursa (job #1252347) | Cod sursa (job #2437135) | Cod sursa (job #3166573) | Cod sursa (job #1460687) | Cod sursa (job #1308495)
#include<iostream>
#include<fstream>
#include<stack>
#include<list>
#include<bitset>
#include<stdio.h>
using namespace std;
list<int> l[100000];
bitset<100000> f;
FILE*so=fopen("dfs.out","w");
void dfs(int x)
{
stack<int> s;
s.push(x);
f[x]=1;
list<int>::iterator i;
while(s.size()>0)
{
x=s.top();
s.pop();
for(i=l[x].begin();i!=l[x].end();++i)
{
if(f[*i]==0)
{
f[*i]=1;
s.push(*i);
}
}
}
}
int main()
{
ifstream si;
si.open("dfs.in");
int n,m;
si>>n>>m;
int i,a,b;
for(i=0;i<m;++i)
{
si>>a>>b;
--a;
--b;
l[a].push_back(b);
l[b].push_back(a);
}
int cont=0;
for(i=0;i<n;++i)
if(f[i]==0)
{
++cont;
dfs(i);
}
fprintf(so,"%i\n",cont);
}