Pagini recente » Cod sursa (job #568945) | Cod sursa (job #1580) | Cod sursa (job #1150041) | Cod sursa (job #2369729) | Cod sursa (job #2487736)
#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;
}
}
}