Pagini recente » Cod sursa (job #2809863) | Cod sursa (job #66027) | Cod sursa (job #719909) | Cod sursa (job #2401654) | Cod sursa (job #1898798)
#include <fstream>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
int solutie[50001], l, N, M;
bool viz[50001];
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
vector<int> muchii[50001];
void dfs(int nod);
void citire();
void solve();
int main()
{
citire();
for(int i=1;i<=N;i++)
if(!viz[i])
dfs(i);
for(int i=N;i>=1;i--)
fo<<solutie[i]<<" ";
return 0;
}
void citire()
{
fi>>N>>M;
for(int i=1;i<=M;i++)
{
int x,y;
fi>>x>>y;
muchii[x].push_back(y);
}
return;
}
void dfs(int nod)
{
if(viz[nod])
return;
else viz[nod] = true;
if(muchii[nod].size()==0)
{
solutie[++l] = nod;
return;
}
else for(int i=0;i<muchii[nod].size();i++)
dfs(muchii[nod][i]);
solutie[++l] = nod;
return;
}