Pagini recente » Cod sursa (job #808827) | Cod sursa (job #1195646) | Cod sursa (job #875542) | Cod sursa (job #1632761) | Cod sursa (job #875673)
Cod sursa(job #875673)
#include <cstdio>
#include <vector>
#define maxn 50005
using namespace std;
vector<int> graf[maxn];
int n;
int deg[maxn];
int q[maxn];
void read()
{
freopen("sortaret.in","r",stdin);
int m,a,b;
scanf("%d %d\n",&n,&m);
while(m--)
{
scanf("%d %d\n",&a,&b);
deg[b]++;
graf[a].push_back(b);
}
}
void solve()
{
vector<int> :: iterator it;
int i,x;
for(i=1;i<=n;++i)
if(deg[i]==0)
q[++q[0]]=i;
for(i=1;i<=n;++i)
{
x = q[i];
for(it=graf[x].begin();it != graf[x].end(); ++ it)
{
deg[*it]--;
if(deg[*it]==0)
q[++q[0]]=*it;
}
}
}
void write()
{
int i;
freopen("sortaret.out","w",stdout);
for(i = 1; i <= n ; ++ i)
printf("%d ",q[i]);
}
int main()
{
read();
solve();
write();
return 0;
}