Pagini recente » Cod sursa (job #2168499) | Cod sursa (job #2422586) | Cod sursa (job #2649927) | Cod sursa (job #3206889) | Cod sursa (job #1427895)
#include <stdio.h>
#include <vector>
using namespace std;
int n, m, l[50000];
bool viz[50000];
vector<int> g[50000];
void citire()
{
FILE* f = fopen("sortaret.in", "r");
fscanf(f, "%d%d", &n, &m);
for (int i = 0; i < m; ++i)
{
int x, y;
fscanf(f, "%d%d", &x, &y);
g[x].push_back(y);
}
fclose(f);
}
void dfs(int nod, int niv)
{
if (l[nod] < niv)
l[nod] = niv;
printf("%d ", nod);
viz[nod] = true;
for (int i = 0; i < g[nod].size(); ++i)
{
dfs(g[nod][i], niv + 1);
}
}
void afisare()
{
FILE* f = fopen("sortaret.out", "w");
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
if (l[j] == i)
fprintf(f, "%d ", j);
fclose(f);
}
int main()
{
citire();
for (int i = 1; i <= n; ++i)
dfs(i, 1);
afisare();
return 0;
}