Pagini recente » Cod sursa (job #1449952) | Cod sursa (job #651994) | Cod sursa (job #3187573) | Cod sursa (job #3273385) | Cod sursa (job #2722808)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
int vf[100001], urm[100001], last[50001];
void adaugaVf(int from, int to)
{
static int poz = 0;
vf[++poz] = to;
urm[poz] = last[from];
last[from] = poz;
}
int sortTop[50001];
bitset <50001> viz;
void sortareTop(int nod)
{
static int poz = n;
viz[nod] = 1;
for(int k = last[nod]; k; k = urm[k])
if(viz[vf[k]] == 0)
sortareTop(vf[k]);
sortTop[poz--] = nod;
}
int main()
{
in >> n >> m;
for(int k = 1, i, j; k <= m; k++)
{
in >> i >> j;
adaugaVf(i, j);
}
for(int i = 1; i <= n; i++)
if(viz[i] == 0)
sortareTop(i);
for(int i = 1; i <= n; i++)
out << sortTop[i] << ' ';
return 0;
}