Pagini recente » Cod sursa (job #603608) | Cod sursa (job #1132476) | Cod sursa (job #1650985) | Cod sursa (job #1731387) | Cod sursa (job #2628098)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> a[50005];
int grad[50005], nod[50005], sol[50005];
int main()
{
int n, m, knod = 0, ksol = 0;
fin >> n >> m;
for(int i = 1; i <= m; i++)
{
int x, y;
fin >> x >> y;
a[x].push_back(y);
grad[y]++;
}
for(int i = 1; i <= n; i++)
if(grad[i] == 0)
nod[++knod] = i;
int it = 1;
while(it <= knod)
{
for(int i = 0; i < a[nod[it]].size(); i++)
{
int dest = a[nod[it]][i];
grad[dest] --;
if(grad[dest] == 0)
nod[++knod] = dest;
}
sol[++ksol] = nod[it];
it++;
}
for(int i = 1; i <= ksol; i++)
fout << sol[i] << " ";
return 0;
}