Pagini recente » Cod sursa (job #2909351) | Cod sursa (job #2083873) | Cod sursa (job #2944774) | Cod sursa (job #2942947) | Cod sursa (job #2663365)
#include<fstream>
#include<vector>
#include<cstring>
#include <stack>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void ST(vector<int>A[], int n, int viz[], stack<int>& s) {
viz[n] = 1;
for (int i = 0; i < A[n].size(); ++i) {
if (viz[A[n][i]] == 0) {
ST(A, A[n][i], viz, s);
}
}
s.push(n);
}
int main()
{
int n, m, x, y, nod, viz[100001];
vector<int>A[100001];
stack<int>s;
f >> n >> m;
for (int i = 0; i < m; ++i) {
f >> x >> y;
A[x].push_back(y);
}
memset(viz, 0, sizeof(viz));
//for(int i=0; i<sizeof(viz); ++i)
// viz[i]=0;
for (int i = 1; i <= n; ++i) {
if (viz[i] == 0) {
ST(A, i, viz, s);
}
}
for(int i = 0; i < n; ++i) {
g << s.top() << " ";
s.pop();
}
return 0;
}