Pagini recente » Cod sursa (job #3223641) | Cod sursa (job #396236) | Cod sursa (job #815249) | Cod sursa (job #3278207) | Cod sursa (job #1375542)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int viz[100100],n,m,nrc;
void config(int x, int y)
{
for(int i=1;i<=n;i++)
if(viz[i]==y)
viz[i]=x;
}
int main()
{
int x,i,y,nr=0;
FILE *f=fopen("dfs.in","r");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y);
if(viz[x]==0 && viz[y]==0)
{
nr++;nrc++;
viz[x]=viz[y]=nr;
}
else
if(viz[x]!=0 && viz[y]==0)
viz[y]=viz[x];
else
if(viz[x]==0 && viz[y]!=0)
viz[x]=viz[y];
else
{config(viz[x],viz[y]);
nrc--;}
}
for(i=1;i<=n;i++)
if(viz[i]==0)
nrc++;
cout<<nrc;
return 0;
}