Pagini recente » Cod sursa (job #609929) | Cod sursa (job #239892) | Cod sursa (job #2454785) | Cod sursa (job #720740) | Cod sursa (job #792139)
Cod sursa(job #792139)
#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,**a,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<=n;++i)printf("%d ",pred[i]);
a=new int*[n+2];
for (int i=1;i<=n;++i)
a[i]=new int[n+2];
for(int i=1;i<=n;++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;
}