Cod sursa(job #3199370)

Utilizator alexdmnDamian Alexandru alexdmn Data 1 februarie 2024 15:48:55
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <queue>

using namespace std;
int f[50005], fa[50005];
vector <int> g[50005];
queue <int> q;

void dfs(int i)
{
	f[i]=1;
	q.push(i);
	for(auto vec : g[i])
	{
		if(f[vec]!=1)
			dfs(vec);
	}
}
int main()
{
		ifstream cin("sortaret.in");
		ofstream cout("sortaret.out");

    int n, m, a, b;
    cin>>n>>m;
		for(int i=1;i<=n;i++)
			fa[i]=-1;

		for(int i=0;i<m;i++)
		{
			cin>>a>>b;
			g[a].push_back(b);
			fa[b]=a;
		}

		for(int i=1;i<=n;i++)
		{
			if(fa[i]==-1)
			{
				dfs(i);
				break;
			}
		}

    while(!q.empty())
		{
			cout<<q.front()<<" ";
			q.pop();
		}

    return 0;
}