Pagini recente » Cod sursa (job #1136393) | Cod sursa (job #1441904) | Cod sursa (job #544599) | Cod sursa (job #180227) | Cod sursa (job #3142434)
#include <fstream>
#include <vector>
#include <queue>
#define pb push_back
#define NMAX 50005
using namespace std;
ifstream cin("soraret.in");
ofstream cout("sortaret.out");
queue<int> Q;
vector<int> adj[NMAX];
int n,m,fr[NMAX],vis[NMAX];
int main()
{
cin >> n >> m;
for(int i=1; i <= m; i++)
{
int x,y;
cin >> x >> y;
adj[x].pb(y);
fr[y]++;
}
for(int i=1; i <= n; i++)
{
if(!fr[i])
{
Q.push(i);
vis[i] = 1;
}
}
while(!Q.empty())
{
cout << Q.front() << ' ';
for(int k=0; k < adj[Q.front()].size(); k++)
{
if(fr[adj[Q.front()][k]]-1 == 0)
{
Q.push(adj[Q.front()][k]);
fr[adj[Q.front()][k]]--;
}
else
fr[adj[Q.front()][k]]--;
}
Q.pop();
}
return 0;
}