Pagini recente » Cod sursa (job #2221408) | Borderou de evaluare (job #2581330) | Cod sursa (job #1827179) | Cod sursa (job #590663) | Cod sursa (job #507873)
Cod sursa(job #507873)
#include<fstream>
#include<vector>
using namespace std;
# define nmax 50001
vector <int> nod[nmax];
bool viz[nmax];
int l[nmax],n,m,v[nmax],pas;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void Read()
{
f>>n>>m;
int i,x,y;
for(;m;--m)
{
f>>x>>y;
nod[x].push_back(y);
}
for(i=1;i<=n;i++)
l[i]=nod[i].size();
}
void SortTopologic(int x)
{
int k;
viz[x]=1;
for(k=0;k<l[x];k++)
if(!viz[nod[x][k]])
SortTopologic(nod[x][k]);
v[++pas]=x;
}
int main()
{
Read();
int i;
for(i=1;i<=n;i++)
if(!viz[i])
SortTopologic(i);
for(i=n;i;--i) g<<v[i]<<' ';
}