Pagini recente » Cod sursa (job #1554038) | Cod sursa (job #38879) | Cod sursa (job #2680164) | Cod sursa (job #2045802) | Cod sursa (job #2040353)
#include<cstdio>
#include<vector>
const int NMAX=50000;
const int MMAX=100000;
std::vector <int> v[NMAX];
int c[NMAX+1];
int vec[NMAX+1];
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m;
scanf("%d %d ",&n,&m);
for(int i=1;i<=m;i++)
{
int x,y;
scanf("%d %d ",&x,&y);
v[x].push_back(y);
vec[y]++;
}
int nr=0;
for(int i=1;i<=n;i++)
{
if(vec[i]==0)
c[++nr]=i;
}
for(int i=1;i<=n;i++)
{
int q=c[i];
for(std::vector <int>::iterator j=v[q].begin();j!=v[q].end();j++)
{
vec[*j]--;
if(vec[*j]==0)
c[++nr]=*j;
}
}
for(int i=1;i<=n;i++)
{
printf("%d ",c[i]);
}
return 0;
}