Pagini recente » Cod sursa (job #773974) | Cod sursa (job #1622732) | Cod sursa (job #2525967) | Cod sursa (job #1602645) | Cod sursa (job #2211241)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define MAXN 50005
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector<int>graf[MAXN];
int stiva[MAXN],deg[MAXN],n,m;
void sortare_topologica(){
int cnt = 0;
for(int nod = 1; nod <= n; nod++)
if(deg[nod] == 0)
stiva[++cnt] = nod;
for(int i = 1; i <= n; i++){
int nod = stiva[i];
for(int vecin = 0; vecin < graf[nod].size(); vecin++){
int curent = graf[nod][vecin];
deg[curent]--;
if(deg[curent] == 0)
stiva[++cnt] = curent;
}
}
}
int main()
{
in>>n>>m;
for(int i = 1; i <= n; i++){
int nod,muchie;
in>>nod>>muchie;
graf[nod].push_back(muchie);
deg[muchie]++;
}
sortare_topologica();
for(int i = 1; i <= n; i++)
out<<stiva[i]<<" ";
return 0;
}