Pagini recente » Cod sursa (job #1806263) | Cod sursa (job #1243779) | Cod sursa (job #1514367) | Cod sursa (job #1385930) | Cod sursa (job #792144)
Cod sursa(job #792144)
#include <stdio.h>
#include<vector>
#include<string.h>
using namespace std;
vector<int > v;
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m,x,y,*pred;
scanf("%d %d",&n,&m);
pred=new int[n+1];
vector<int >*s;
s=new vector<int>[n+1];
memset(&pred[0],0,(n+1)*sizeof(int));
for(int i=1;i<=m;++i)
{
scanf("%d %d",&x,&y);
s[x].push_back(y);
pred[y]+=1;
}
for(int i=1;i<=n;++i)
{
if(!pred[i])v.push_back(i);
}
while(v.size()>=1)
{
x=v.front();
printf("%d ",x);
for(int i=0;i<s[x].size();++i)
{
y=s[x][i];
pred[y]-=1;
if(pred[y]==0)v.push_back(y);
}
v.erase(v.begin());
}
return 0;
}