Pagini recente » Cod sursa (job #474913) | Cod sursa (job #397014) | Cod sursa (job #1120330) | Cod sursa (job #842249) | Cod sursa (job #1846957)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,j,ge[50005],gi[50005],x,y,ct,s[50005];
bool viz[50005];
vector <int>v[50005];
queue<int>C;
void DFS(int nod)
{int i;
for(i=0;i<ge[nod];i++)
{if(viz[v[nod][i]]==0){viz[v[nod][i]]=1;
DFS(v[nod][i]);
}
}
C.push(nod);
}
int main()
{int i;
fin>>n>>m;
for(i=1;i<=m;i++)
{fin>>x>>y;
v[x].push_back(y);
gi[y]++;
ge[x]++;
}
for(i=1;i<=n;i++)
{if(gi[i]==0)DFS(i);
}
while(!C.empty())
{ct++;
s[ct]=C.front();
C.pop();
}
for(i=ct;i>=1;i--)
fout<<s[i]<<" ";
}