Pagini recente » Cod sursa (job #1600075) | Cod sursa (job #120303) | Cod sursa (job #1181483) | Cod sursa (job #2758084) | Cod sursa (job #1356144)
#include <stdio.h>
#include <vector>
#define NMAX 50023
FILE *fin, *fout;
int n, m, in[NMAX], a, b, d[NMAX], dr, st, sizen;
std::vector<int> adj[NMAX];
int main()
{
fin = freopen("sortaret.in", "r", stdin);
fout = freopen("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i = 0; i< m; ++i)
{
scanf("%d %d", &a, &b);
in[b]++;
adj[a].push_back(b);
}
for(int i = 1; i<= n; i++) if(!in[i]) d[dr] = i, dr++;
for(int i = 0; i< dr; ++i)
{
printf("%d ", d[i]);
sizen = adj[d[i]].size();
for(int j = 0; j< sizen; ++j)
{
in[adj[d[i]][j]]--;
if(!in[adj[d[i]][j]]) d[dr]= adj[d[i]][j], dr++;
}
}
fclose(fin);
fclose(fout);
return 0;
}