Pagini recente » Cod sursa (job #373379) | Cod sursa (job #406876) | Cod sursa (job #1117876) | Cod sursa (job #1010485) | Cod sursa (job #1719853)
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>
#define DX 100500
using namespace std;
fstream fin("sortaret.in",ios::in),fout("sortaret.out",ios::out);
vector<int> jos[DX],sus[DX],r;
queue<int> qu;
int ap[DX],bif[DX];
int main()
{
int i,b,c,aux,n,m,a;
ios_base::sync_with_stdio(false);
cin.tie(0);
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b;
jos[a].push_back(b);
sus[b].push_back(a);
ap[a]++;
}
for(i=1;i<=n;i++) if(ap[i]==0) qu.push(i);
while(!qu.empty())
{
aux=qu.front();
qu.pop();
if(bif[aux]) continue;
bif[aux]=1;
r.push_back(aux);
for(i=0;i<sus[aux].size();i++)
{
ap[sus[aux][i]]--;
if(bif[sus[aux][i]]==0 && ap[sus[aux][i]]==0)
{
qu.push(sus[aux][i]);
}
}
}
for(i=n-1;i>=0;i--) fout<<r[i]<<" ";
}