Pagini recente » Cod sursa (job #1066763) | Cod sursa (job #2639308) | Cod sursa (job #2668711) | Cod sursa (job #728102) | Cod sursa (job #2207297)
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
void dfs(vector<vector<int> > &v,vector<int> &disc,stack<int> &st,int i) {
disc[i] = 1;
for(int j=0;j<v[i].size();j++)
if (!disc[v[i][j]]) {
dfs(v, disc, st,v[i][j]);
}
st.push(i);
}
int main() {
int n, a,b;
ifstream f("sortaret.in");
ofstream f1("sortaret.out");
f >> n >> a;
vector<vector<int> > graf(n);
vector<int> disc(n,0);
stack<int> s;
while (f >> a >> b) {
graf[a - 1].push_back(b - 1);
}
for(int i=0;i<n;i++)
if(!disc[i])
dfs(graf, disc, s, i);
while(!s.empty()){
f1 << s.top()+1<<" ";
s.pop();
}
return 0;
}