Pagini recente » Cod sursa (job #613643) | Cod sursa (job #9413) | Cod sursa (job #2453612) | Cod sursa (job #1947097) | Cod sursa (job #2026559)
#include <iostream>
#include <vector>
#include <bitset>
#include <queue>
using namespace std;
bitset <50001> K;
queue <int> Q;
vector <int> G[50001], Deg(50001);
int n, m;
void TopSort()
{
for(int i = 1; i <= n; ++i)
if(!Deg[i])
Q.push(i);
while(!Q.empty())
{
int x = Q.front();
cout << x << " ";
K[x] = 1;
Q.pop();
for(vector <int> :: iterator it = G[x].begin(); it != G[x].end(); ++it)
{
Deg[*it]--;
if(!K[*it] && !Deg[*it])
Q.push(*it);
}
}
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
cin >> n >> m;
for(; m; --m)
{
int x, y;
cin >> x >> y;
G[x].push_back(y);
++Deg[y];
}
TopSort();
}