Pagini recente » Cod sursa (job #2619382) | Cod sursa (job #1105383) | Cod sursa (job #2483719) | Cod sursa (job #2483716) | Cod sursa (job #2477803)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
vector <int> ma[50005];
vector <int> rez, start;
bool viz[50005], incoming[50005];
void dfs(int x)
{
viz[x] = true ;
for(int i=0; i<ma[x].size(); i++)
if( viz[ma[x][i]] == false )
dfs(ma[x][i]);
rez.push_back(x);
}
int main()
{
int x, y;
in >> n >> m ;
for(int i=1; i<=m; i++)
{
in >> x >> y ;
ma[x].push_back(y);
incoming[y] = true;
}
for(int i=1; i<=n; i++)
if(incoming[i] == false)
start.push_back(i);
for(int i=0; i<start.size(); i++)
dfs(start[i]);
for(int i=rez.size()-1; i>=0; i--)
out << rez[i] << " " ;
return 0;
}