Pagini recente » Cod sursa (job #2006600) | Cod sursa (job #286742) | Cod sursa (job #1338087) | Monitorul de evaluare | Cod sursa (job #729909)
Cod sursa(job #729909)
#include <fstream>
#include <stack>
#include <bitset>
#include <vector>
#define N 50010
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
stack<int> S;
vector<int> A[N];
bitset<N> V;
int n,i,a,b,m;
void DF(int nod) {
V[nod]=1;
for (unsigned int i=0;i<A[nod].size();i++)
if (!V[A[nod][i]]) DF(A[nod][i]);
S.push(nod);
return;
}
int main() {
for (f >> n >> m,i=1;i<=m;i++) {
f >> a >> b;
A[a].push_back(b);
}
for (i=1;i<=n;i++)
if (!V[i]) DF(i);
for (;!S.empty();S.pop())
g << S.top() << ' ';
g << '\n';
f.close();g.close();
return 0;
}