Cod sursa(job #1958377)

Utilizator cris90robert@yahoo.comseretan cristian [email protected] Data 8 aprilie 2017 12:39:10
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
	int a[10][10]={},u,p,l=0,viz[100]={},s,k,i,j,q,n,m,ok,coada[100];
	fstream f("ctc.in",ios::in);
	f>>n>>m;
	for(i=1;i<=m;i++)
	{
		f>>p>>q;
		a[p][q]=1;
	}
	f.close();
	for(k=1;k<=n;k++)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				if((i!=j)&&(a[i][j]==0))
				{
					a[i][j]=a[i][k]*a[k][j];
				}
			}
		}
	}
	for(i=1;i<=n;i++)
	{
		if(viz[i]==0)
		{
			u=1;
			p=1;
			l++;
			viz[i]=l;
			coada[u]=i;
			while(p<=u)
			{
				for(j=1;j<=n;j++)
				{
					if(viz[j]==0)
					{
						ok=1;
						for(s=1;s<=u;s++)
						{
							if((a[j][coada[s]]==0)||(a[coada[s]][j]==0))
							{
								ok=0;
								break;
							}
						}
						if(ok==1)
						{
							u++;
							coada[u]=j;
							viz[j]=l;
						}
					}
				}
				p++;
			}
		}
	}
	fstream g("ctc.out",ios::out);
	g<<l<<endl;
	for(i=1;i<=l;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(viz[j]==i)
			{
				g<<j<<" ";
			}
		}
		g<<endl;
	}
	g.close();
}