Pagini recente » Cod sursa (job #1747074) | Cod sursa (job #411878) | Cod sursa (job #1432305) | Cod sursa (job #41683) | Cod sursa (job #792928)
Cod sursa(job #792928)
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m;
vector<vector<int> > G(50010);
stack<int> st;
bool viz[50010];
void readData()
{
f >> n >> m;
int x,y;
for(int i = 1; i <= n; i++)
{
f>>x>>y;
G[x].push_back(y);
}
f.close();
}
void DFS(int i)
{
viz[i]=1;
for( vector<int>::iterator p = G[i].begin(); p < G[i].end(); p++ )
{
if(!viz[*p])
{
DFS(*p);
}
}
st.push(i);
}
void writeData()
{
while(!st.empty())
{
g << st.top() << ' ';
st.pop();
}
}
int main()
{
readData();
for(int i = 1; i <= n; i++)
{
if(!viz[i])
{
DFS(i);
}
}
writeData();
return 0;
}