Pagini recente » Cod sursa (job #1136194) | Cod sursa (job #1558696) | Cod sursa (job #1836605) | Monitorul de evaluare | Cod sursa (job #1220475)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector <int> vec[50005];
queue <int> q;
int n,m,gr[50005],sol[50005],k,nod;
int main()
{ int i,j,x,y,nod;
f>>n>>m;
for(i=1;i<=m;i++)
{ f>>x>>y;
vec[y].push_back(x);
gr[x]++;
}
for(i=1;i<=n;i++)
if (!gr[i]) q.push(i);
k=n+1;
while(!q.empty())
{ nod=q.front(); q.pop();
k--; sol[k]=nod;
for(i=0;i<vec[nod].size();i++)
{gr[vec[nod][i]]--; if (!gr[vec[nod][i]]) q.push(vec[nod][i]);}
}
for(i=1;i<=n;i++)
g<<sol[i]<<" ";
return 0;
}