Pagini recente » Cod sursa (job #458430) | Cod sursa (job #737205) | Cod sursa (job #2747581) | Cod sursa (job #2118268) | Cod sursa (job #1621203)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod
{
int info;
nod *urm;
} *l[50001];
int n, m, x, y, grad[50001], q[50001], s, d;
int main()
{
f >> n >> m;
for ( int i = 1; i <= m; i ++ )
{
f >> x >> y;
nod *nou;
nou = new nod;
nou -> info = y;
nou -> urm = l[ x ];
l[ x ] = nou;
grad[ y ] ++;
}
s = 1;
for ( int i = 1; i <= n; i ++ )
{
if( grad[ i ] == 0 )
{
q[ ++ d ] = i;
}
}
while ( s <= d )
{
int i = q[ s ];
g << i << " ";
for ( nod *p = l[i]; p; p = p -> urm )
{
grad[ p -> info ] --;
if( grad[ p -> info ] == 0 )
{
q[ ++ d ] = p -> info;
}
}
s ++ ;
}
return 0;
}