Pagini recente » Cod sursa (job #2649681) | Cod sursa (job #2715522) | Cod sursa (job #2589197) | Cod sursa (job #2103902) | Cod sursa (job #1713921)
#include<fstream>
#include<bitset>
using namespace std;
#define NMAX 100005
ifstream fin("dfs.in");
ofstream fout("dfs.out");
bitset <NMAX> ok;
int n,m,k,x,y,GR[NMAX];
int grupa(int k)
{
if (GR[k]==k) return k;
GR[k]=grupa(GR[k]);
return GR[k];
}
void unifica(int k1, int k2)
{
int r1=grupa(k1), r2=grupa(k2);
GR[r2]=r1;
}
int main()
{
int i;
fin>>n>>m;
for (i=1;i<=n;++i)
GR[i]=i;
for (i=0;i<m;++i)
{
fin>>x>>y;
unifica(x,y);
}
for (i=1;i<=n;++i)
ok[grupa(i)]=1;
for (i=1;i<=n;++i)
if (ok[i])
++k;
fout<<k<<"\n";
return 0;
}