Pagini recente » Istoria paginii runda/simulare_oji_clasa_a-10-a/clasament | Cod sursa (job #1771277) | Cod sursa (job #2761489) | Cod sursa (job #2693159) | Cod sursa (job #1493463)
#include <stdio.h>
#include <vector>
#include <bitset>
#define NMAX 50005
using namespace std;
vector <int> G[NMAX];
int k, st[NMAX];
bitset <NMAX> viz;
void dfs(int nod){
viz[nod] = 1;
for(vector <int> :: iterator it = G[nod].begin(); it != G[nod].end(); ++it)
if(!viz[*it])
dfs(*it);
st[++k] = nod;
}
int main(){
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int N, M, x, y;
scanf("%d %d", &N, &M);
for(int i = 1; i <= M; ++i){
scanf("%d %d", &x, &y);
G[x].push_back(y);
}
for(int i = 1; i <= N; ++i)
if(!viz[i])
dfs(i);
for(int i = N; i >= 1; --i)
printf("%d ", st[i]);
return 0;
}