Pagini recente » Cod sursa (job #795832) | Cod sursa (job #2143987) | Cod sursa (job #2953412) | Cod sursa (job #714432) | Cod sursa (job #2647736)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <string.h>
#define MAX_N 50001
using namespace std;
int n, m, i, x, y, viz[MAX_N];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void addEdge(vector<int> graf[], int u, int v)
{
graf[u].push_back(v);
//graf[v].push_back(u);
}
vector<int> graf[MAX_N];
int G[MAX_N], coada[MAX_N];
int k = 0, it = 1;
void citire(){
f >> n >> m;
for (i=1; i<=m; i++){
f >> x >> y;
addEdge(graf,x,y);
}
}
void topological(int nod){
viz[nod] = 1;
for (int i=0; i<G[nod]; i++)
if (viz[graf[nod][i]] == 0)
topological(graf[nod][i]);
k++;
coada[k] = nod;
}
void afisare(){
for (int i=k; i>=1; i--)
g << coada[i] << " ";
}
int main()
{
citire();
for (i = 1; i <= n; i++)
G[i] = graf[i].size();
topological(1);
afisare();
return 0;
}