Pagini recente » Cod sursa (job #2312022) | Cod sursa (job #2586680) | Cod sursa (job #1362947) | Cod sursa (job #75519) | Cod sursa (job #2943070)
#include <fstream>
#include <bitset>
#include <vector>
#include <stack>
using std::stack;
using std::vector;
using std::bitset;
using std::ios_base;
const int NMAX = 50000;
std::ifstream fin("sortaret.in");
std::ofstream fout("sortaret.out");
vector<vector<int> > adj(1 + NMAX);
bitset<1 + NMAX> vis;
stack<int> st;
void dfs(int node)
{
vis[node] = 1;
for(size_t i = 0; i < adj[node].size(); i++)
if(!vis[adj[node][i]])
dfs(adj[node][i]);
st.push(node);
}
int main(int argc, char **argv)
{
ios_base::sync_with_stdio(false);
fin.tie(NULL);
int n, m, i, j;
fin >> n >> m;
while(m--)
{
fin >> i >> j;
adj[i].push_back(j);
}
for(i = 1; i <= n; i++)
if(!vis[i])
dfs(i);
while(!st.empty())
{
fout << st.top() << " ";
st.pop();
}
return 0;
}