Pagini recente » Cod sursa (job #677561) | Cod sursa (job #2236677) | Cod sursa (job #684727) | Cod sursa (job #224381) | Cod sursa (job #1959217)
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ofstream fout ("sortaret.out");
ifstream fin ("sortaret.in");
int n,m,i,a,b;
queue < int > q;
vector < int > v[50005];
int rsp[50005],grad[50005];
int main()
{
fin>>n>>m;
for( i = 1 ; i <= m ; i++ )
{
fin>>a>>b;
grad[ b ]++;
v[ a ].push_back( b );
}
for( i = 1 ; i <= n ; i++ )
if( !grad[ i ] )
q.push( i );
for( i = 1 ; i <= n ; i++ )
{
rsp[ i ] = q.front();
for( auto it : v[ q.front() ] )
{
grad[ it ]--;
if( !grad[ it ] )
q.push( it );
fout<<it<<" ";
}
q.pop();
}
for( i = 1 ; i <= n ; i++ )
fout<<rsp[ i ]<<" ";
}