Pagini recente » Cod sursa (job #948898) | Cod sursa (job #497676) | Cod sursa (job #793957) | Cod sursa (job #1645631) | Cod sursa (job #938631)
Cod sursa(job #938631)
#include<fstream>
#include<vector>
using namespace std;
const int MAXN=100010;
vector<int> v[MAXN];
bool trecut[MAXN];
int n,m,nrconexe=0;
void citire()
{
int x,y,i;
ifstream fin("dfs.in");
fin>>n>>m;
for (i=1;i<=m;++i)
{
fin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
fin.close();
}
void dfs_visit(int start)
{
trecut[start]=true;
for (vector<int>::iterator it=v[start].begin();it!=v[start].end();++it)
if (!trecut[*it]) //daca nu am mai trecut
dfs_visit(*it);
}
void dfs()
{
int i;
for (i=1;i<=n;++i)
{
if (!trecut[i])
{
nrconexe++;
dfs_visit(i);
}
}
}
void afisare()
{
ofstream fout("dfs.out");
fout<<nrconexe<<'\n';
fout.close();
}
int main()
{
citire();
dfs();
afisare();
return 0;
}