Cod sursa(job #547469)

Utilizator alexapoApostol Alexandru Ionut alexapo Data 6 martie 2011 13:11:47
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
# include <fstream.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
long long c[200000],i,j,m,n,v[2000][2000],t,k,x,y,nrc;
void citire()
{
	f>>n>>m;
	for(i=1;i<=m;i++)
		f>>x>>y,v[x][y]=v[y][x]=1;
}
void cc()
{
	for(i=1;i<=n;i++)
		c[i]=i;
	for(i=2;i<=n;i++)
		for(j=1;j<i;j++)
			if(v[i][j]==1&&c[i]!=c[j])
			{
				k=c[j];
				for(t=1;t<=n;t++)
					if(c[t]==k)
						c[t]=c[i];
			}
			nrc=0;
			for(i=1;i<=n;i++)
				if(c[i]!=0)
				{
					nrc++;
					//g<<nrc<<'\n';
					k=c[i];
					for(j=i;j<=n;j++)
						if(c[j]==k)
							//g<<c[j],
							c[j]=0;
				}
				//g<<'\n';
}

int main()
{
	citire();
	cc();
	g<<nrc<<'\n';
	f.close();
	g.close();
	return 0;
}