Pagini recente » Cod sursa (job #1490454) | Rating Tololoi Ilinca-Roxana (roxana.tololoi) | Cod sursa (job #1625152) | Cod sursa (job #1125380) | Cod sursa (job #2805814)
#include <cstdio>
using namespace std;
FILE* f, * g;
int start[50002], t[2][100002], n;
bool viz[50002];
int v[50002];
void dfs(int nod)
{
int vecin, poz;
viz[nod] = 1;
poz = start[nod];
while (poz)
{
vecin = t[0][poz];
if (!viz[vecin])
dfs(vecin);
poz = t[1][poz];
}
v[++v[0]] = nod;
}
int main()
{
f = fopen("sortaret.in", "r");
g = fopen("sortaret.out", "w");
int m, x, y, k = 0;
fscanf(f, "%d %d", &n, &m);
for (int i = 1;i <= m;++i)
{
fscanf(f, "%d %d", &x, &y);
t[0][++k] = y;
t[1][k] = start[x];
start[x] = k;
}
for (int i = 1;i <= n;++i)
if (!viz[i])
dfs(i);
for (int i = v[0];i >= 1;--i)
fprintf(g, "%d ", v[i]);
fclose(f);
fclose(g);
return 0;
}