Pagini recente » Cod sursa (job #173908) | Cod sursa (job #48684) | Borderou de evaluare (job #3199123) | Cod sursa (job #52932) | Cod sursa (job #196592)
Cod sursa(job #196592)
#include <cstdio>
#include <vector>
#define IN "sortaret.in"
#define OUT "sortaret.out"
#define N_MAX 1<<16
#define M_MAX 1<<17
#define pb push_back
#define FOR(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
vector < vector <int> > a(N_MAX);
int n,m;
int muchii[N_MAX];
bool viz[N_MAX];
void scan()
{
int x,y;
freopen(IN, "r",stdin);
freopen(OUT, "w",stdout);
scanf("%d%d\n", &n,&m);
FOR(i,1,m)
scanf("%d%d\n", &x,&y),
++muchii[y],
a[x].pb(y);
}
void solve()
{
int first=1;
FOR(i,1,n)
FOR(j,first,n)
if(!viz[j] && !muchii[j])
{
first=j;
printf("%d ",j);
viz[j]=1;
int l=a[j].size();
FOR(k,0,l-1)
--muchii[a[j][k]];
break;
}
}
int main()
{
scan();
solve();
return 0;
}