Pagini recente » Cod sursa (job #1162008) | Cod sursa (job #2767095) | Cod sursa (job #2459385) | Cod sursa (job #2280194) | Cod sursa (job #1378226)
#include<fstream>
#include<vector>
#include<stack>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector< vector<int> > v;
vector<int> viz;
int n,m,aux1,aux2;
stack<int> st;
void citire()
{
f>>n>>m;
v.resize(n+1, vector<int> ());
viz.resize(n+1);
for(int i=1;i<=m;++i)
{
f>>aux1>>aux2;
v[aux1].push_back(aux2);
}
}
void dfs (int nod)
{
viz[nod]=1;
for(auto it=v[nod].begin();it!=v[nod].end();++it)
{
if(!viz[*it])
{
dfs(*it);
}
}
st.push(nod);
}
void afisare()
{
while(!st.empty())
{
g<<st.top()<<' ';
st.pop();
}
}
void solve()
{
citire();
for(int i=1;i<=n;++i)
{
if(!viz[i]) dfs(i);
}
afisare();
}
int main()
{
solve();
}