Pagini recente » Cod sursa (job #2744556) | Cod sursa (job #701045) | Cod sursa (job #2223564) | Cod sursa (job #1006731) | Cod sursa (job #1118019)
#include <iostream>
#include <cstdio>
#include <vector>
#define Nmax 50010
using namespace std;
vector <int> Graf[Nmax];
int Grad[Nmax],Coada[Nmax];
int N;
void Citire()
{
int x,y,M;
scanf("%d %d",&N,&M);
for(int i=1;i<=M;++i)
{
scanf("%d %d",&x,&y);
Graf[x].push_back(y);
Grad[y]++;
}
}
void Rezolvare()
{
for(int i=1;i<=N;++i)
if(Grad[i]==0)
Coada[++Coada[0]]=i;
for(int i=1;i<=N;++i)
{
int x=Coada[i];
for(int j=0;j<Graf[x].size();++j)
{
int v=Graf[x][j];
--Grad[v];
if(Grad[v]==0)
Coada[++Coada[0]]=v;
}
}
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
Citire();
Rezolvare();
for(int i=1;i<=N;++i)
printf("%d ",Coada[i]);
return 0;
}