Pagini recente » Cod sursa (job #707602) | Cod sursa (job #2253942) | Cod sursa (job #1112300) | Cod sursa (job #416498) | Cod sursa (job #1628793)
#include <iostream>
#include <cstdio>
#include <vector>
#include <utility>
#include <algorithm>
#include <queue>
using namespace std;
#define pb push_back
vector <int> a[50001];
int n,m,x,y;
int viz[50001];
vector <int> rez;
void topo(int q)
{
viz[q]=1;
rez.pb(q);
for(int i=0;i<a[q].size();i++)
if(viz[a[q][i]]==0)
topo(a[q][i]);
}
void citire()
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
a[x].pb(y);
}
for(int i=0;i<n;i++)
sort(a[i].begin(),a[i].end());
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
citire();
for(int i=1;i<=n;i++)
if(viz[i]==0)
topo(i);
for(int i=0;i<rez.size();i++)
printf("%d ",rez[i]);
for(int i=1;i<=n;i++)
if(viz[i]==0)
printf("%d ",i);
return 0;
}