Pagini recente » Cod sursa (job #1615035) | Cod sursa (job #1035780) | Cod sursa (job #2926656) | Cod sursa (job #1491149) | Cod sursa (job #1322647)
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
int v[100001],n,m,nr;
int main()
{int i,x,y,k=0;
ifstream f("dfs.in");
FILE *g;
g=fopen("dfs.out","w");
f>>n>>m;
for(i=1;i<=m; i++)
{
f>>x>>y;
if(v[x]==0 && v[y]==0)
{v[x]=v[y]=++nr;
}
else
if(v[x]!=0 && v[y]==0)
v[y]=v[x];
else
if(v[y]!=0 && v[x]==0)
v[x]=v[y];
else
{if(v[x]!=v[y])
{for(int j=1; j<=n; j++)
if(v[x]==v[j])
v[j]=v[y];
k++;}
}
}
for(i=1;i<=n; i++)
if(v[i]==0)
{v[i]=++nr;
}
fprintf(g,"%d",nr-k);
fprintf(g,"\n");
for(i=1;i<=n; i++)
fprintf(g,"%d ",v[i]);
return 0;
}