Pagini recente » Cod sursa (job #1524366) | Cod sursa (job #2017109) | Cod sursa (job #571855) | Cod sursa (job #204313) | Cod sursa (job #407839)
Cod sursa(job #407839)
#include<stdio.h>
#include<vector>
using namespace std;
long n,m,grad[50010];
vector<int> Graf[50010];
//vector<int> Q;
long Q[50010];
void cit();
void rez();
void afis();
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
cit();
rez();
afis();
return 0;
}
void cit() {
scanf("%ld%ld",&n,&m);
for(long i=1; i<=n; i++) {
long x,y;
scanf("%ld%ld",&x,&y);
Graf[x].push_back(y);
grad[y]++;
}
}
void rez() {
long i,j;
vector<int>::iterator it;
for(i=1; i<=n;i++)
if(!grad[i])
Q[++Q[0]]=i;
for(i=1; i<=n;i++) {
long x=Q[i];
for(it=Graf[x].begin(); it!=Graf[x].end(); it++) {
grad[*it]--;
if(!grad[*it])
Q[++Q[0]]=*it;
}
}
}
void afis() {
for(long i=1; i<=n;i++)
printf("%ld ",Q[i]);
}