Pagini recente » Cod sursa (job #697425) | Cod sursa (job #181470) | Cod sursa (job #695508) | Cod sursa (job #2046126) | Cod sursa (job #880164)
Cod sursa(job #880164)
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
vector <int> succesor[50010];
queue <int> q;
int s[50010],predecesor[50010];
int n,r,i,x,y;
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w ",stdout);
scanf("%d%d",&n,&r);
for(i=1;i<=r;i++)
{
scanf("%d%d",&x,&y);
predecesor[y]++;
succesor[x].push_back(y);
}
for(i=1;i<=n;i++)
if(!predecesor[i])
q.push(i);
while(!q.empty())
{
x=q.front();
for(i=0;i<succesor[x].size();i++){
predecesor[succesor[x][i]]--;
if(predecesor[succesor[x][i]]==0)
q.push(succesor[x][i]);
}
s[++s[0]]=x;
q.pop();
}
for(i=1;i<=s[0];i++)
printf("%d ",s[i]);
printf("\n");
return 0;
}