Pagini recente » Cod sursa (job #2050773) | Cod sursa (job #189711) | Cod sursa (job #3143871) | Cod sursa (job #46278) | Cod sursa (job #2369850)
#include <bits/stdc++.h>
#define dimn 50005
#define dimm 100005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m, i, j, nr[dimn];
queue <int> Q;
vector <int> v[dimm];
void topsort()
{
for ( i = 1 ; i <= n ; i++ )
if ( nr[i] == 0 )
Q.push(i);
while ( !Q.empty() )
{
int old_node = Q.front();
Q.pop();
g << old_node << " ";
int l = v[old_node].size();
for ( i = 0 ; i < l ; i++ )
{
int new_node = v[old_node][i];
nr[new_node]-- ;
if( nr[new_node] == 0 )
Q.push(new_node);
}
}
}
int main()
{
f >> n >> m;
for ( i = 1 ; i <= m ; i++ )
{
int x, y;
f >> x >> y ;
v[x].push_back(y);
nr[y]++;
}
topsort();
return 0;
}