Pagini recente » Cod sursa (job #1932220) | Cod sursa (job #793978) | Cod sursa (job #629526) | Cod sursa (job #671990) | Cod sursa (job #566415)
Cod sursa(job #566415)
#include<cstdio>
#include<vector>
using namespace std;
const char in[]="sortaret.in";
const char out[]="sortaret.out";
const int Max_N = 50100;
#define pb push_back
int d[Max_N], Q[Max_N], N, M, X, Y;
vector<int>G[Max_N];
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d%d", &N, &M);
for(int i = 1 ; i <= M ; ++i)
{
scanf("%d%d", &X, &Y);
G[X].pb(Y);
++d[Y];
}
for(int i = 1 ; i <= N ; ++i)
if(!d[i])Q[++Q[0]] = i;
for(int i = 1 ; i <= N ; ++i)
{
X = Q[i];
for(int i = 0 ; i < G[X].size() ; ++i)
{
--d[ G[ X ][ i ] ];
if(!d[ G[ X ][ i ] ])Q[++Q[0]] = G[ X ][ i ];
}
}
for(int i = 1 ; i <= N ; ++i)
printf("%d ", Q[i]);
return 0;
}