Pagini recente » Cod sursa (job #2335704) | Cod sursa (job #549250) | Cod sursa (job #1261250) | Cod sursa (job #2873693) | Cod sursa (job #2810082)
#include<fstream>
#include<vector>
#include<stack>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n;
vector<bool>use;
vector<vector<int>>g;
stack<int>sol;
void read()
{
int m,x,y;
cin>>n>>m;
use=vector<bool>(n+1);
g=vector<vector<int>>(n+1);
for(int i=1; i<=m; i++)
{
cin>>x>>y;
g[x].push_back(y);
}
}
void dfs(int np)
{
use[np]=1;
for(auto v:g[np])
if(!use[v])
dfs(v);
sol.push(np);
}
void afisare()
{
int vf;
while(!sol.empty())
{
vf=sol.top();
cout<<vf<<' ';
sol.pop();
}
}
int main()
{
read();
for(int i=1; i<=n; i++)
if(!use[i])
dfs(i);
afisare();
}