Pagini recente » Cod sursa (job #1279737) | Cod sursa (job #1043142) | Cod sursa (job #1396449) | Cod sursa (job #2389840) | Cod sursa (job #2407742)
#include <iostream>
#include <fstream>
#include <vector>
#define MAX 50000
using namespace std;
vector <vector <int >> v1(MAX);
vector<int> postord;
vector<bool> viz(MAX , false);
int n , m;
void read_data()
{
ifstream in("sortaret.in");
in>>n>>m;
int x,y;
for(int i = 0 ; i < m ;i++)
{
in>>x>>y;
v1[x].push_back(y);
}
in.close();
}
void dfs(int x)
{
viz[x] = true;
for(int i = 0 ; i < v1[x].size() ; i++)
if(!viz[v1[x][i]])
dfs(v1[x][i]);
postord.push_back(x);
}
int main()
{
read_data();
for(int i = 1 ; i<= n ;i++)
for(int i = 1 ; i<= n ;i++)
if(!viz[i])
dfs(i);
ofstream out("sortaret.out");
vector < int> ::reverse_iterator rit;
for(rit = postord.rbegin() ; rit < postord.rend() ; rit++)
out<<*rit<<" ";
return 0;
}