Pagini recente » Cod sursa (job #988208) | Cod sursa (job #3282248) | Cod sursa (job #3272074) | Cod sursa (job #2362910) | Cod sursa (job #3003500)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("sortaret.in");
ofstream cout ("sortaret.out");
vector < vector <int> > adiacenta;
vector <int> sortat , vizitat;
void Parcurgere (int nod_actual)
{
vizitat[nod_actual] = 1;
for (auto nod_vecin : adiacenta[nod_actual])
if (!vizitat[nod_vecin])
Parcurgere(nod_vecin);
sortat.push_back(nod_actual);
}
int main ()
{
int noduri , muchii , varf_1 , varf_2;
cin >> noduri >> muchii;
adiacenta.resize(noduri + 1);
for (int indice = 1 ; indice <= muchii ; indice++)
cin >> varf_1 >> varf_2 , adiacenta[varf_1].push_back(varf_2);
vizitat.resize(noduri + 1);
for (int nod = 1 ; nod <= noduri ; nod++)
if (!vizitat[nod])
Parcurgere(nod);
for (int indice = noduri - 1 ; indice >= 0; indice--)
cout << sortat[indice] << ' ';
cout.close(); cin.close();
return 0;
}