Pagini recente » Cod sursa (job #1875508) | Cod sursa (job #1377629) | Cod sursa (job #2304712) | Cod sursa (job #1407070) | Cod sursa (job #2536808)
#include <iostream>
#include <fstream>
#include <vector>
#define MAX 50005
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m, k, ii, jj;
vector <int> v[MAX];
int sol[MAX];
bool grad[MAX], a[MAX];
void dfs(int nod){
a[nod]=1;
for(int i=0; i<v[nod].size(); i++)
if(a[ v[nod][i] ] == 0)
dfs(v[nod][i]);
sol[++k]=nod;
}
int main (){
fin>>n>>m;
for(int i=1; i<=m; i++){
fin>>ii>>jj;
v[ii].push_back(jj);
grad[jj]=1;
}
for(int i=1; i<=n; i++)
if(grad[i] == 0)
dfs(i);
for(int i=k; i>=1; i--) fout<<sol[i]<<" ";
return 0;
}