Pagini recente » Cod sursa (job #3001001) | Cod sursa (job #267194) | Cod sursa (job #642397) | Cod sursa (job #2319578) | Cod sursa (job #1632908)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector <int> v[50001];
int q[50001],gre[50001],n,m;
fstream f("sortaret.in");
ofstream g("sortaret.out");
void sol(){
int i,x,j,l=0;
for(i=1;i<=n;i++)
if(gre[i]==0) q[++l]=i;;
for(i=1;i<=n;i++)
{ x=q[i];
for(j=0;j<v[x].size();j++)
{
gre[v[x][j]]--;
if(gre[v[x][j]]==0) q[++l]=v[x][j];
}
}
}
/*void DF(int i){
int j;
sign[si][i]=1;
for(j=0;j<a[i].size();j++){
if(viz[a[i][j]]==0){
viz[a[i][j]]=1;
DF(a[i][j]);
}
}
}*/
int main()
{ int x,y,i,j;
f>>n>>m;
for(i=1;i<=m;i++)
f>>x>>y, v[x].push_back(y),gre[y]++;
sol();
for(i=1;i<=n;i++)
g<<q[i]<<" ";
return 0;
}