Pagini recente » Cod sursa (job #538755) | Cod sursa (job #2359015) | Cod sursa (job #165690) | Cod sursa (job #2089877) | Cod sursa (job #1379436)
#include <fstream>
#include <vector>
#include <stack>
#define nmax 50009
using namespace std;
struct vecini
{
vector <int> v;
};
vecini g[nmax];
int deg[nmax];
bool viz[nmax];
stack <int> ans;
void DFS(int n)
{
int i,x;
for(i=0;i<g[n].v.size();i++)
{
x=g[n].v[i];
if(viz[x]==false)
{
viz[x]=true;
DFS(x);
}
}
ans.push(n);
}
int main()
{
int n,m,i,x,y;
ifstream f("sortaret.in");
ofstream h("sortaret.out");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
g[x].v.push_back(y);
deg[y]++;
}
for(i=1;i<=n;i++)
{
if(deg[i]==0)
{
viz[i]=true;
DFS(i);
}
}
while(ans.empty()==0)
{
h<<ans.top()<<" ";
ans.pop();
}
return 0;
}