Cod sursa(job #1033547)
Utilizator | Data | 17 noiembrie 2013 10:06:42 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include<cstdio>
#include<vector>
using namespace std;
#define NMAX 50005
vector <int> v[NMAX];
int n,m,x,y;
bool gr[NMAX],ap[NMAX];
void dfs(int s)
{
int i;
ap[s]=true;
for (i=0;i<v[s].size();++i)
if (!ap[v[s][i]])
dfs(v[s][i]);
printf("%d ",s);
}
int main()
{
int i;
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=0;i<m;++i)
{
scanf("%d%d",&x,&y);
v[y].push_back(x);
gr[x]=true;
}
for (i=1;i<=n;++i)
if (!gr[i])
dfs(i);
printf("\n");
return 0;
}