Pagini recente » Cod sursa (job #2180019) | Cod sursa (job #584703) | Cod sursa (job #745367) | Cod sursa (job #2576575) | Cod sursa (job #1191218)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f;
ofstream g;
int i,j,m,n,k,**t,*a,nem;
char *b;
void caut(int p)
{
a[p]=1;
for(int i=0;i<n;i++)
{
if(t[p][i]==1&&a[i]==0){t[p][i]=0;caut(i);}
}
if(a[p]==1)
{
b[nem]='p+1';
nem++;
a[p]=2;
}
}
int main()
{
f.open("sortaret.in");
g.open("sortaret.out");
f>>n;
f>>m;
t=new int*[n];
a=new int[n];
b=new char[n];
for(i=0;i<n;i++)
{
t[i]=new int[n];
a[i]=0;
b[i]=0;
for(j=0;j<n;j++)t[i][j]=0;
}
for(i=0;i<m;i++)
{
f>>k>>j;
t[k-1][j-1]=1;
}
nem=0;
for(i=0;i<n;i++)
{
if(a[i]==0)caut(i);
}
nem--;
while(nem>=0){g<<b[nem]<<' ';nem--;}
g.close();
return 0;
}