Pagini recente » Cod sursa (job #612766) | Cod sursa (job #2914385) | Cod sursa (job #2077887) | Cod sursa (job #1249075) | Cod sursa (job #1181589)
#include <fstream>
#include <vector>
using namespace std;
const int Nmax = 50444;
vector<int> G[Nmax];
char viz[Nmax];
int Ord[Nmax];
void dfs(int a)
{
viz[a] = 1;
for (auto x: G[a])
if (!viz[x])
dfs(x);
Ord[++Ord[0]] = a;
return;
}
int main()
{
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
int N, M, a, b;
f >> N >> M;
while (M--)
{
f >> a >> b;
G[b-1].push_back(a-1);
}
for (int a = 0; a < N; a++)
if (!viz[a])
dfs(a);
for(int i = 1; i <= N; i++)
g << Ord[i]+1 << ' ';
g << '\n';
return 0;
}