Pagini recente » Cod sursa (job #2196014) | Cod sursa (job #111437) | Cod sursa (job #486146) | Cod sursa (job #3170984) | Cod sursa (job #2681328)
#include<fstream>
#include<set>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n, coada[50001], st, dr, grad[50001];
set<int> v[50001];
void sorttop(int a)
{
cout<<a<<" ";
st++;
for(set<int>::iterator it=v[a].begin(); it!=v[a].end(); ++it)
{
grad[*it]--;
if(grad[*it] == 0)
{
coada[dr]=*it;
dr++;
}
}
if(st<dr)
sorttop(coada[st]);
}
int main()
{
int m, a, b;
cin>>n>>m;
for(int i=1; i<=m; i++)
{
cin>>a>>b;
v[a].insert(b);
grad[b]++;
}
st=1;
dr=1;
for(int i=1; i<=n; i++)
{
if(grad[i]==0)
{
coada[dr]=i;
dr++;
}
}
sorttop(coada[1]);
return 0;
}