Pagini recente » Cod sursa (job #1726906) | Cod sursa (job #304458) | Cod sursa (job #2716395) | Cod sursa (job #115647) | Cod sursa (job #215233)
Cod sursa(job #215233)
#include <cstdio>
#include <vector>
#define maxim 50001
using namespace std;
vector<int>sir[maxim];
int grad[maxim],sol[maxim],m,n;
void solve()
{
int zz=1,aux;
for(int i=1;i<=n;i++)
if(grad[i]==0)
sol[zz++]=i;
for(int j=1;j<=n;j++)
{
aux=sol[j];
for(vector<int>::iterator it=sir[aux].begin();it!=sir[aux].end();it++)
{
grad[(*it)]--;
if (grad[(*it)]==0)
sol[zz++]=(*it);
}
}
}
int main ()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
int x,y;
for (int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
grad[y]++;
sir[x].push_back(y);
}
solve();
for(int i=1;i<=n;i++)
printf("%d ",sol[i]);
fclose(stdout);
return 0;
}