Pagini recente » Cod sursa (job #1567047) | Cod sursa (job #1037845) | Cod sursa (job #1296963) | Cod sursa (job #66543) | Cod sursa (job #1521851)
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 100002
using namespace std;
vector<int>a[nmax];
int n,m,viz[nmax],v=1,nr=0;
void citire()
{
int i,x,y;
cin>>n>>m;
for(i=1;i<=n;i++)
a[i].push_back(0);
for(i=1; i<=m; i++)
{
cin>>x>>y;
//a[x][0]++;
a[x].push_back(y);
//a[y][0]++;
a[y].push_back(x);
}
}
void dfs(int x)
{
int i;
viz[x]=v;
for(i=1; i<=a[x].size()-1; i++)
if(!viz[a[x][i]])
{
dfs(a[x][i]);
nr++;
}
}
int main()
{
freopen("dfs.in","rt",stdin);
freopen("dfs.out","wt",stdout);
int i;
citire();
//while(nr<n)
//{
for(i=1; i<=n; i++)
if(!viz[i])
{
v++;
dfs(i);
//nr++;
//break;
}
//}
cout<<v-1<<'\n';
return 0;
}