Pagini recente » Cod sursa (job #2280900) | Cod sursa (job #1980937) | Cod sursa (job #354048) | Cod sursa (job #3221277) | Cod sursa (job #1336126)
#include <iostream>
#include <fstream>
#include<stack>
#include<list>
#include<bitset>
using namespace std;
list<int> l[100000];
bitset<100000> f;
void dfs(int s)
{
stack<int> poz;
poz.push(s);
while(poz.size()>0)
{
s=poz.top();
poz.pop();
list<int>::iterator i;
for(i=l[s].begin();i!=l[s].end();++i)
{
if(f[*i]==0)
{
f[*i]=1;
poz.push(*i);
}
}
}
}
int main()
{
ifstream si;
si.open("dfs.in");
ofstream so;
so.open("dfs.out");
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)
{
f[i]=1;
dfs(i);
++cont;
}
}
so<<cont;
}