Cod sursa(job #2487736)

Utilizator Alex_AmarandeiAmarandei Matei Alexandru Alex_Amarandei Data 5 noiembrie 2019 18:20:15
Problema Componente tare conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

using namespace std;
ifstream fin("ctc.in");
ofstream fout("ctc.out");

int n, m, nr;
bool a[105][105], f[105];

void read();
void drum();
void ctc();

int main()
{
	read();
	drum();
	ctc();

	return 0;
}

void read()
{
	int i, x, y;

	fin >> n >> m;

	for (i = 1; i <= m; i++)
	{
		fin >> x >> y;
		a[x][y] = true;
	}

	for (i = 1; i <= n; i++)
		a[i][i] = true;
}

void drum()
{
	int x, y, z;

	for (z = 1; z <= n; z++)
		for (x = 1; x <= n; x++)
			for (y = 1; y <= n; y++)
				if (a[x][z] && a[z][y])
					a[x][y] = 1;
}

void ctc()
{
	int i, j;

	for (i = 1; i <= n; i++)
		if (!f[i])
		{
			fout << "Componenta tare-conexa cu numarul " << ++nr << ": "; f[i] = true;
			for (j = 1; j <= n; j++)
				if (a[i][j] && a[j][i])
				{
					fout << j << ' ';
					f[j] = true;
				}
		}
}