Pagini recente » Cod sursa (job #1143472) | Cod sursa (job #2451338) | Cod sursa (job #2477855) | Cod sursa (job #89586) | Cod sursa (job #1375548)
#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++;
ofstream g("dfs.out");
g<<nrc;
return 0;
}