Pagini recente » Cod sursa (job #2623840) | Cod sursa (job #1012543) | Cod sursa (job #2750843) | Cod sursa (job #2137631) | Cod sursa (job #2724040)
#include <fstream>
using namespace std;
ifstream fin("topsort.in");
ofstream fout("topsort.out");
#define N 100001
#define M 400001
struct {int x,y;} u[M];
int p[N],c[N],v[N],n,m,k,a,b;
int main()
{
int i,j,k,x,y;
//citire
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>u[i].x>>u[i].y;
v[u[i].y]++;
}
//sortare muchii
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(u[i].x>u[j].x)
swap(u[i],u[j]);
//indexare
for(i=1;i<=n;i++)
if(u[i].x!=u[i-1].x)
p[u[i].x]=i;
//sortare topologica
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
if(v[i]==0)
{
fout<<i<<' ';
v[i]=-1;
for(j=p[i];u[j].x==i;j++)
v[u[j].y]--;
break;
}
}
return 0;
}