Pagini recente » Cod sursa (job #2570823) | Cod sursa (job #1778663) | Cod sursa (job #764068) | Cod sursa (job #2303582) | Cod sursa (job #2496622)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define NMAX 50005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<int> v[NMAX];
stack <int> s;
int viz[NMAX];
void DFS(int i)
{
viz[i]=1;
for(vector<int> :: iterator it = v[i].begin(); it != v[i].end(); it++)
if(!viz[*it]) DFS(*it);
s.push(i);
}
int main()
{
int n,m, i;
f>>n>>m;
for(i = 1; i <= m; i++)
{
int x,y;
f>>x>>y;
v[x].push_back(y);
}
for(int i = 1;i <= n;i++)
if(!viz[i])
DFS(i);
while(!s.empty())
{
g << s.top() << ' ';
s.pop();
}
}