Pagini recente » Cod sursa (job #2305714) | Cod sursa (job #751126) | Cod sursa (job #2058804) | Cod sursa (job #2951591) | Cod sursa (job #1377307)
#include <fstream>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("ctc.in");
ofstream fout("ctc.out");
int n,m,i,j,k,a,b,timp;
int l[100001];
stack<int> s;
vector<int> v[100001],f[100001];
void dfs(int nod)
{
for (vector<int>::iterator it = v[nod].begin(); it != v[nod].end(); ++it)
{
if (l[*it]==0)
{
l[*it]=1;
dfs(*it);
s.push(*it);
}
}
}
void dfs2(int nod)
{
for (vector<int>::iterator it = f[nod].begin(); it != f[nod].end(); ++it)
{
if (l[*it]==1)
{
l[*it]=0;
fout<<*it<<" ";
dfs2(*it);
}
}
}
int main()
{
fin>>n>>m;
for (i=1;i<=m;i++)
{
fin>>a>>b;
v[a].push_back(b);
f[b].push_back(a);
}
l[1]=1;
dfs(1);
s.push(1);
while (s.empty() == false)
{
if (l[s.top()]==1)
{
dfs2(s.top());
fout<<"\n";
}
s.pop();
}
return 0;
}