Pagini recente » Cod sursa (job #2376384) | Cod sursa (job #568621) | Cod sursa (job #2342471) | Cod sursa (job #1465733) | Cod sursa (job #1758702)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define MAX_NR_NODURI 50000 + 1
#define VIZITAT 1
vector <int> nod[MAX_NR_NODURI];
long nr_muchii, nr_noduri;
int viz[MAX_NR_NODURI];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector <int> result;
void dfs(long crt)
{
viz[crt] = VIZITAT;
long i, lg = nod[crt].size();
for (i = 0; i < lg; i++)
if (!viz[nod[crt][i]]){
dfs(nod[crt][i]);
}
result.push_back(crt);
}
int main ()
{
long a, b;
f >> nr_noduri >> nr_muchii;
for (long i = 0; i < nr_muchii; i++) {
f >> a >> b;
nod[a].push_back(b);
}
f.close();
for (long i = 1; i <= nr_noduri; i++) {
if (!viz[i]) {
dfs(i);
}
}
for (int i = nr_noduri - 1; i >= 0; i--) {
g << result.at(i) << " ";
}
g << "\n";
g.close();
return 0;
}