Pagini recente » Cod sursa (job #2895589) | Cod sursa (job #1275840) | Cod sursa (job #530144)
Cod sursa(job #530144)
#include<iostream.h>
#include<fstream.h>
ofstream h("ctc.out");
int a[10000][10000],viz[100001],n,viz1[100001];
int parcur1(int x)
{viz1[x]=1;
for(int i=1;i<=n;i++)
if(viz1[i]==0&&a[i][x]==1&&a[x][i]==1)
parcur1(i);
}
int parcurg(int x)
{viz[x]=1;
h<<x<<" ";
for(int i=1;i<=n;i++)
if(viz[i]==0&&a[i][x]==1&&a[x][i]==1)
parcurg(i);
}
int main()
{int m,x,y,i,j,k,p=0;
ifstream f("ctc.in");
f>>n>>m;
for(i=1;i<=m;i++)
{f>>x>>y;
a[x][y]=1;}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][k]==1&&a[k][j]==1&&i!=k&&j!=k)
a[i][j]=1;
for(i=1;i<=n;i++)
if(viz1[i]==0)
{parcur1(i);
p++;}
h<<p<<endl;
for(i=1;i<=n;i++)
if(viz[i]==0)
{parcurg(i);
h<<endl;}
return 0;}