Pagini recente » Cod sursa (job #121233) | Cod sursa (job #1235055) | Cod sursa (job #655065) | Cod sursa (job #332360) | Cod sursa (job #1370754)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
int n,m,i,j,x,y,poz;
struct node
{
int nod;
int tata;
};
vector <int> v[50001];
int predecesor[50001];
int solution[50001];
void sortare_top()
{
int i,val,j;
for(i = 1;i <= n; i++)
{
val=solution[i];
for(j = 0;j < v[val].size(); j++)
{
predecesor[v[val][j]]--;
if(!predecesor[v[val][j]])
solution[++poz]=v[val][j];
}
}
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for(i = 1;i <= m; i++ )
{
scanf("%d%d", &x, &y);
v[x].push_back(y);
predecesor[y]++;
}
for(i = 1;i <= n; i++ )
{
if(!predecesor[i])
solution[++poz]=i;
}
sortare_top();
for(i = 1;i <= n; i++ )
printf("%d ",solution[i]);
return 0;
}