Pagini recente » Cod sursa (job #2757419) | Cod sursa (job #1579219) | Cod sursa (job #3240343) | Cod sursa (job #1485704) | Cod sursa (job #2912712)
#include<fstream>
#include<set>
#include<stack>
#define max 50001
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
set<int> vecini[max];
bool vizitat[max];
stack<int> sol;
void DFS(int nod)
{
vizitat[nod]=1;
for(auto i:vecini[nod])
{
if(!vizitat[i])
{
DFS(i);
}
}
sol.push(nod);
}
int main()
{
int n,m,a,b;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>a>>b;
vecini[a].insert(b);
}
cin.close();
//topsort
for(int i=1;i<=n;i++)
{
if(!vizitat[i])
{
DFS(i);
}
}
while(!sol.empty())
{
cout<<sol.top()<<" ";
sol.pop();
}
cout.close();
return 0;//superpeace
}