Cod sursa(job #3261632)
| Utilizator | Data | 7 decembrie 2024 09:23:59 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int N,M,x,y,i,j,v[50005];
vector<int> A[50005];
map< pair<int,int>, bool> seen;
deque<int> sorted;
void dfs(int k){
v[k] = 1;
for (auto next_n : A[k])
if (!v[next_n])
dfs(next_n);
sorted.push_back(k);
}
int main()
{
cin >> N >> M;
for (i = 1;i <= M;i++){
cin >> x >> y;
if (!seen[{y,x}]);
A[y].push_back(x);
seen[{y,x}] = 1;
}
for (i = 1;i <= N;i++)
if (!v[i])
dfs(i);
for (auto elem : sorted)
cout << elem << " ";
return 0;
}
