Pagini recente »
Cod sursă (job #811864)
|
Borderou de evaluare (job #795890)
|
Borderou de evaluare (job #253670)
|
Istoria paginii utilizator/altexx
|
Cod sursă (job #139080)
Cod sursă (job
#139080)
#include <stdio.h>
#define MAX_N 200000
#define NOTHING -1
#define INPFILE "pointeri.in"
#define OTPFILE "pointeri.out"
int st[MAX_N], dr[MAX_N], n, rad, prev;
void parcurge(int start)
{
if (start != NOTHING) {
parcurge(st[start]);
if (prev == NOTHING) {
rad = start;
st[start] = NOTHING;
} else {
dr[prev] = start;
st[start] = prev;
}
prev = start;
parcurge(dr[start]);
}
}
int main()
{
freopen(INPFILE, "r", stdin);
freopen(OTPFILE, "w", stdout);
scanf("%d %d\n", &n, &rad);
int i;
for (i = 0; i < n; ++i) {
scanf("%d", &st[i]);
}
for (i = 0; i < n; ++i) {
scanf("%d", &dr[i]);
}
prev = NOTHING;
parcurge(rad);
printf("%d\n", rad);
for (i = 0; i < n; ++i) {
printf("%d ", st[i]);
}
putchar('\n');
for (i = 0; i < n; ++i) {
printf("%d ", dr[i]);
}
return 0;
}