Pagini recente » Cod sursa (job #609439) | Cod sursa (job #1041156) | Cod sursa (job #1381263) | Cod sursa (job #189531) | Cod sursa (job #1038076)
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
using namespace std;
vector <int> L[50002];
stack <int>S;
int viz[50002];
int n,m;
void read_data()
{
freopen("sortaret.in","r",stdin);
scanf("%d%d",&n,&m);
int x,y;
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
L[x].push_back(y);
}
}
void DF(int v)
{
viz[v]=1;
vector <int>::iterator it;
for(it=L[v].begin();it!=L[v].end();it++)
if(!viz[*it])
DF(*it);
S.push(v);
}
void write_data()
{
freopen("sortaret.out","w",stdout);
while(!S.empty())
{
printf("%d ",S.top());
S.pop();
}
}
int main()
{
read_data();
for(int i=1;i<=n;i++)
if(!viz[i])
DF(i);
write_data();
return 0;
}