Pagini recente » Cod sursa (job #2328178) | Cod sursa (job #1021038) | Cod sursa (job #1022189) | Cod sursa (job #2094547) | Cod sursa (job #1847005)
#include <fstream>
#define nmax 50001
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,viz[nmax];
stack<int>S;
vector<int>V[nmax];
void Citire()
{ fin>>n>>m;
int i,x,y;
for(i=1;i<=m;i++)
{ fin>>x>>y;
V[x].push_back(y);
}
}
void DFS(int x)
{ viz[x]=1;
vector<int>::iterator it;
for(it=V[x].begin();it!=V[x].end();++it)
if(viz[*it]==0)
DFS(*it);
S.push(x);
}
int main()
{
Citire();
int i;
for(i=1;i<=n;i++)
if(!viz[i]) DFS(i);
while(!S.empty())
{ fout<<S.top()<<" ";
S.pop();
}
return 0;
}