Pagini recente » Cod sursa (job #1647610) | Cod sursa (job #2259717) | Cod sursa (job #3184321) | Cod sursa (job #1222062) | Cod sursa (job #2667473)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> muchie[50005];
stack <int> st;
int N, M;
bool vizitat[50005];
void read()
{
fin>>N>>M;
int x, y;
for(int i=1;i<=M;i++)
{
fin>>x>>y;
muchie[x].push_back(y);
}
}
void DFS(int x)
{
vizitat[x]=true;
for(int i=0;i<muchie[x].size();i++)
{
if(vizitat[muchie[x][i]]==false)
DFS(muchie[x][i]);
}
st.push(x);
}
void afisare()
{
while(!st.empty())
{
fout<<st.top()<<' ';
st.pop();
}
}
void rezolva()
{
for(int i=1;i<=N;i++)
{
if(vizitat[i]==false)
DFS(i);
}
afisare();
}
int main()
{
read();
rezolva();
return 0;
}