Pagini recente » Cod sursa (job #2682434) | Cod sursa (job #925498) | Cod sursa (job #1917927) | Cod sursa (job #1671278) | Cod sursa (job #2199126)
#include <bits/stdc++.h>
#define dimn 50005
std::ifstream f("sortaret.in");
std::ofstream g("sortaret.out");
int N, M;
int gre[dimn];
std::vector <int> adj[dimn];
int ns, sol[dimn];
void citire() {
f >> N >> M;
for(int i=1, y, x; i<=M; i++) {
f >> x >> y;
adj[x].push_back(y);
gre[y]++;
}
}
void rezolvare() {
for (int i=1; i<=N; i++)
if (!gre[i]) sol[ns++] = i;
for(int i=1, x; i<=N; i++) {
x = sol[i-1];
for (int j=0, vec; j<adj[x].size(); j++) {
vec = adj[x][j];
gre[vec]--;
if (!gre[vec]) sol[ns++] = vec;
}
}
for (int i=0; i<N; i++)
g << sol[i] << " ";
g << "\n";
}
int main()
{
citire();
rezolvare();
return 0;
}