Pagini recente » Cod sursa (job #1754378) | Cod sursa (job #2706924) | Cod sursa (job #3258578) | Cod sursa (job #1483083) | Cod sursa (job #2871887)
#include <iostream>
#include <fstream>
#include <stack>
#include <list>
using namespace std;
const int INF=1e9;
void DFS (list <int> l[],int n,bool viz[],int k,ofstream& writer,stack<int>& q)
{
viz[k]=true;
for(auto i:l[k])
if(!viz[i])
DFS(l,n,viz,i,writer,q);
q.push(k);
}
int main()
{
ifstream reader ("sortaret.in");
ofstream writer ("sortaret.out");
int n,m;
reader>>n>>m;
list <int> l[n];
int x,y;
for(int i=0;i<m;++i)
{
reader>>x>>y;
x--;
y--;
l[x].push_back(y);
}
stack <int> q;
bool viz[n];
for(int i=0;i<n;++i)
viz[i]=false;
for(int i=0;i<n;++i)
if(!viz[i])
DFS(l,n,viz,i,writer,q);
while(!q.empty())
{
writer<<q.top()+1<<" ";
q.pop();
}
return 0;
}