Pagini recente » Cod sursa (job #1140638) | Cod sursa (job #456085) | Cod sursa (job #2298184) | Cod sursa (job #1065229) | Cod sursa (job #1521825)
#include <iostream>
#include <fstream>
#define nmax 5002
using namespace std;
int n,m,a[nmax][nmax],viz[nmax],v=1,nr=0;
void citire()
{
int i,x,y;
cin>>n>>m;
for(i=1; i<=m; i++)
{
cin>>x>>y;
a[x][++a[x][0]]=y;
a[y][++a[y][0]]=x;
}
}
void dfs(int x)
{
int i;
viz[x]=v;
for(i=1; i<=a[x][0]; 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])
{
dfs(i);
nr++;
break;
}
v++;
}
cout<<v-1<<'\n';
return 0;
}