Pagini recente » Cod sursa (job #1320200) | Cod sursa (job #1505928) | Cod sursa (job #1500028) | Cod sursa (job #795827) | Cod sursa (job #498853)
Cod sursa(job #498853)
#include<cstdio>
#include<vector>
#include<stack>
using namespace std;
#define Mmax 100001
#define Nmax 50001
vector <int> G[Mmax];
stack <int> sol;
int N, M, val, viz[Nmax];
void DFS(int nod) {
viz[nod]=1;
vector<int> :: iterator it;
for(it=G[nod].begin(); it!=G[nod].end(); it++)
if(!viz[*it]) {
viz[*it]=1;
DFS(*it);
}
sol.push(nod);
}
int main() {
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int i, j;
scanf("%d %d",&N,&M);
while(M--) {
scanf("%d %d",&i,&j);
G[i].push_back(j);
}
for(i=1; i<=N; i++)
if(!viz[i])
DFS(i);
for(; !sol.empty(); sol.pop())
printf("%d ",sol.top());
printf("\n");
return 0;
}