Pagini recente » Cod sursa (job #411844) | Cod sursa (job #1771880) | Cod sursa (job #2302840) | Cod sursa (job #2743447) | Cod sursa (job #1054489)
#include <iostream>
#include <fstream>
using namespace std;
struct drum
{
int x,y;
};
int parcurs[50000];
drum a[100000];
int rez[50000];
int poz=2;
void topologic(int nodu, int m)
{
parcurs[nodu] = 1;
for (int j=1; j<=m; j++)
{
if ((a[j].x == nodu) && (parcurs[a[j].y] == 0) ) { rez[poz] = a[j].y ; poz +=1; topologic(a[j].y,m); }
}
};
int main()
{
int val[50000];
int n,m;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
fin >> n >> m;
for (int i=1 ; i<=n ; i++)
{
val[i] = 0;
parcurs[i]=0;
}
for (int i=1; i<=n ;i++)
{
fin >> a[i].x >> a[i].y;
val[a[i].y] = 1;
}
int nod;
for (int i=1;i<=n;i++)
if (val[i] == 0) {nod=i; break;}
rez[1] = nod;
topologic(nod,m);
for (int i=1; i<poz; i++)
fout << rez[i]<< " ";
return 0;
}