Pagini recente » Cod sursa (job #155222) | Cod sursa (job #430173) | Cod sursa (job #1113520) | Cod sursa (job #374470) | Cod sursa (job #1082137)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
unsigned short int N; int M; bool Verif[50001];
vector <unsigned short int> Tab[50001], Sol;
void Citire()
{
unsigned short int x,y;
fin>>N>>M;
while(fin>>x>>y) Tab[x].push_back(y);
}
inline unsigned short int DFS(unsigned short int Nod)
{
vector<unsigned short int>::iterator it;
Verif[Nod]=1;
for (it=Tab[Nod].begin(); it!=Tab[Nod].end(); it++)
if(!Verif[*it])
DFS(*it);
Sol.push_back(Nod);
}
void S_Topologica()
{
for(unsigned short int i=1; i<=N; ++i)
if(!Verif[i])
DFS(i);
}
void Afisare()
{
while(Sol.size())
{
fout<<Sol.back()<<' ';
Sol.pop_back();
}
}
int main()
{
Citire();
S_Topologica();
Afisare();
}