Pagini recente » Cod sursa (job #778291) | Istoria paginii runda/tema_pentru_vacanta/clasament | Clasamentul arhivei de probleme | Cod sursa (job #3031896) | Cod sursa (job #2540805)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
vector <int> v[50005];
int n, m, ii, jj;
bool ok[50005], g[50005];
int k, sol[50005];
void dfs(int nod){
ok[nod]=1;
for(int i=0; i<v[nod].size(); i++)
if(ok[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);
g[jj]=1;
}
for(int i=1; i<=n; i++)
if(g[i] == 0)
dfs(i);
for(int i=n; i>=1; i--) fout<<sol[i]<<" ";
return 0;
}