Pagini recente » Cod sursa (job #1029113) | Cod sursa (job #814151) | Cod sursa (job #2175914) | Cod sursa (job #1147800) | Cod sursa (job #1376355)
#include <fstream>
#define N 50001
#define M 100001
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
bool ok[N];
int rez[N], nrez = 0;
int lst[N], vf[M], urm[M], nvf = 0;
void df(int x)
{
ok[x] = 1;
for(int i = lst[x]; i; i = urm[i])
{
int y = vf[i];
if(!ok[y])
df(y);
}
rez[++nrez] = x;
}
int main()
{
in >> n >> m;
for(int i = 1; i <= m; i++)
{
int x, y;
in >> x >> y;
vf[++nvf] = y;
urm[nvf] = lst[x];
lst[x] = nvf;
}
for(int i = 1; i <= n; i++)
if(!ok[i])
df(i);
for(int i = nrez; i >= 1; i--)
out << rez[i] << ' ';
out << '\n';
return 0;
}