Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Istoria paginii registru-diplome | Cod sursa (job #1068843) | Cod sursa (job #170915)
Cod sursa(job #170915)
#include<stdio.h>
#define input "sortaret.in"
#define output "sortaret.out"
#define dim 50001
int n, m, nr, postordine[dim], s[dim], a[dim][dim];
void citire();
void dfs(int k);
FILE *in, *out;
int main()
{
in = fopen (input, "r");
out = fopen (output, "w");
citire();
int i;
for(i=1; i<=n; i++)
if(!s[i])
dfs(i);
for(i=n; i; i--)
fprintf(out, "%d ", postordine[i]);
fprintf(out, "\n");
return 0;
}
void citire()
{
int i, x, y;
fscanf(in, "%d%d", &n, &m);
for(i=1; i<=m; i++)
{
fscanf(in, "%d%d", &x, &y);
a[x][0]++;
a[x][a[x][0]]=y;
}
}
void dfs(int k)
{
int i;
s[k] = 1;
for(i=1; i<=a[k][0]; i++)
if(!s[a[k][i]])
dfs(a[k][i]);
postordine[++nr]=k;
}