Pagini recente » Cod sursa (job #3279065) | Cod sursa (job #414142) | Cod sursa (job #3237800) | Cod sursa (job #3155704) | Cod sursa (job #2498292)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int N, listA[5001][5001], nrVecini[50001];
int visited[50001], k = 0, stiva[50001];
void visit(int i) {
visited[i] = 0;
for(int j =1 ; j <= nrVecini[i]; j++) {
if(visited[listA[i][j]] == -1)
visit(listA[i][j]);
}
stiva[++k] = i;
}
int main()
{
int M;
f >> N >> M;
while (M--) {
int x, y;
f >> x >> y;
nrVecini[x]++;
listA[x][nrVecini[x]] = y;
}
for(int i = 1; i <= N; i++)
visited[i] = -1;
for(int i = 1; i <= N; i++) {
if(visited[i] == -1)
visit(i);
}
for(int i = N; i >= 1; i--)
g << stiva[i] << " ";
return 0;
}