Pagini recente » Cod sursa (job #112785) | Cod sursa (job #1957605) | Cod sursa (job #3291150) | Cod sursa (job #618634) | Cod sursa (job #2618779)
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
bool fr[50100];
vector<vector<int>> v;
stack<int> ans;
void topSort(int start)
{
fr[start] = 1;
int nLen = v[start].size();
for(int i = 0; i < nLen; i++)
if(fr[v[start][i]] == 0)
topSort(v[start][i]);
ans.push(start);
}
int main()
{
in >> n >> m;
v.resize(n + 5);
for(int i = 1; i <= n; i++)
{
int x, y;
in >> x >> y;
v[x].push_back(y);
}
for(int i = 1; i <= n; i++)
if(fr[i] == 0)
topSort(i);
while(!ans.empty())
{
cout << ans.top() << ' ';
ans.pop();
}
return 0;
}