Pagini recente » Cod sursa (job #1368636) | Cod sursa (job #2113893) | Cod sursa (job #2981322) | Cod sursa (job #1806067) | Cod sursa (job #2704281)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define Nmax 50005
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int vf, muchii, a, b;
vector < int > Numbers[Nmax];
stack < int > Stiva;
int Visited[Nmax];
inline void DFS(int Nod)
{
int Vecin;
Visited[Nod] = 1;
for(unsigned int i = 0; i < Numbers[Nod].size(); ++ i)
{
Vecin = Numbers[Nod][i];
if(Visited[Vecin] == 0)
DFS(Vecin);
}
Stiva.push(Nod);
}
int main()
{
fin >> vf >> muchii;
for(int i = 1; i <= muchii; ++ i)
{
fin >> a >> b;
Numbers[a].push_back(b);
}
for(int i = 1; i <= vf; ++ i)
{
if(Visited[i] == 0)
DFS(i);
}
while(!Stiva.empty())
{
int top = Stiva.top();
Stiva.pop();
fout << top << " ";
}
return 0;
}