Pagini recente » Cod sursa (job #537759) | Cod sursa (job #2154017) | Cod sursa (job #795710) | Cod sursa (job #1412397) | Cod sursa (job #1963270)
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
#define in "sortaret.in"
#define out "sortaret.out"
#define NMAX (50000 + 7)
#define pb push_back
using namespace std;
int n, m, a, b, inp[NMAX];
vector <int> adj[NMAX];
queue <int> srt;
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", &a, &b);
adj[a].pb(b);
inp[b] ++;
}
for(int i = 1; i<= n; ++i) if(inp[i] == 0) srt.push(i);
while(!srt.empty())
{
int top = srt.front();
srt.pop();
printf("%d ", top);
int sze = adj[top].size();
for(int i = 0; i< sze; ++i)
{
inp[adj[top][i]] --;
if(inp[adj[top][i]] == 0) srt.push(adj[top][i]);
}
}
printf("\n");
return 0;
}