Pagini recente » Cod sursa (job #523357) | Cod sursa (job #2530692) | Cod sursa (job #143686) | Cod sursa (job #465449) | Cod sursa (job #2769363)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
const int maxVal = 5001;
int n, mat[maxVal][maxVal],grad_intern[maxVal], stiva[maxVal], h = 0, vizitat[maxVal];
int dfs (int x)
{
vizitat[x] = 1;
for (int i = 1 ; i <= n; i++)
{
if (mat[x][i] == 1 && vizitat[i] == 0)
{
vizitat[i] = 1;
dfs(i);
}
}
stiva[++h] = x;
}
int main ()
{
int m;
fin >> n >> m;
for (int i = 1 ; i <= m; i++)
{
int x, y;
fin >> x >> y;
mat[x][y] = 1;
grad_intern[y]++;;
}
for (int i = 1; i <= n; i++)
{
if (grad_intern[i] == 0)
dfs(i);
}
for (int i = h; i >= 1; i--)
fout << stiva[i] << ' ';
return 0;
}