Pagini recente » Cod sursa (job #2759135) | Cod sursa (job #698576) | Cod sursa (job #3002847) | Cod sursa (job #3154722) | Cod sursa (job #3030059)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
#define MAX 101
int n, L[MAX][MAX], lung[MAX], DG[MAX], s[MAX], k;
bool viz[MAX];
void citire()
{
f >> n;
int x, y;
while (f >> x >> y)
{
L[x][++lung[x]] = y;
DG[y]++;
}
for (int i = 1; i <= n; ++i)
sort(L[i] + 1, L[i] + 1 + lung[i]);
f.close();
}
void DFS(int u)
{
viz[u] = 1;
for (int i = 1; i <= lung[u]; ++i)
if (!viz[L[u][i]])
DFS(L[u][i]);
s[++k] = u;
}
int main()
{
citire();
/*g << "Liste de adiacenta: ";
for (int i = 1; i <= n; ++i)
{
g << i << ": ";
for (int j = 1; j <= lung[i]; ++j)
g << L[i][j] << " ";
g << endl;
}
*/
for (int i = 1; i <= n; ++i)
if (!viz[i])
DFS(i);
int u = 1;
while (u <= k)
{
g << s[u] << " ";
u++;
}
g.close();
}