Pagini recente » Cod sursa (job #2062438) | Cod sursa (job #375822) | Cod sursa (job #2748886) | Cod sursa (job #242673) | Cod sursa (job #1705894)
#include <iostream>
#include <cstdio>
#include <vector>
#define Nmax 50002
using namespace std;
long N,M;
long vizitat[Nmax];
vector<long> sol;
vector< vector<long> > adj_mat(Nmax, vector<long>());
void dfs(long s)
{
if(vizitat[s])
return;
vizitat[s] = 1;
for(long i = 0 ; i < adj_mat[s].size(); i++)
dfs(adj_mat[s][i]);
vizitat[s] = 2;
sol.push_back(s);
}
int main()
{
FILE *fin = fopen("sortaret.in" , "r");
FILE *fout = fopen("sortaret.out" , "w");
fscanf(fin, "%li %li", &N, &M);
long a,b;
for(long i = 0; i < M; i++)
{
fscanf(fin,"%li %li", &a, &b);
adj_mat[a].push_back(b);
}
for(long i = 1; i <= N; i++)
if(!vizitat[i])
dfs(i);
for(long i = sol.size()-1; i > -1 ; i--)
fprintf(fout,"%li ", sol[i]);
fprintf(fout,"\n");
fclose(fin);
fclose(fout);
}