Pagini recente » Borderou de evaluare (job #3146075) | Cod sursa (job #2065593) | Cod sursa (job #2516399) | Cod sursa (job #1867777) | Cod sursa (job #2802628)
#include<bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<int> adjList[50001];
stack<int> q;
vector<int> visited;
void DFS(int x){
int i;
for(i=0;i<adjList[x].size();++i){
if(visited[adjList[x][i]]==0){
visited[adjList[x][i]]++;
DFS(adjList[x][i]);
}
}
q.push(x);
}
int main(){
int n,m,i,a,b;
f>>n>>m;
for(i=0;i<n;++i){
visited.push_back(0);
}
for(i=0;i<m;++i){
f>>a>>b;
adjList[a-1].push_back(b-1);
}
for(i=0;i<visited.size();++i){
if(visited[i]==0){
visited[i]++;
DFS(i);
}
}
while(!q.empty()){
g<<q.top()+1<<' ';
q.pop();
}
return 0;
}