Pagini recente »
Profil NicolescuMatei
|
Statistici Alexandru Mitici (AlexMitici)
|
Monitorul de evaluare
|
2018-10-04-clasa-6-tema-3
|
Cod sursă (job #238731)
Cod sursă (job
#238731)
#include <fstream>
using namespace std;
ifstream fin("pointeri.in");
ofstream fout ("pointeri.out");
#define MAX 200001
struct pointer
{
int st, dr;
}a[MAX], fnl[MAX];
int n, rad, x[MAX], i;
void rez(int ind)
{
if (a[ind].st == -1 && a[ind].dr == -1)
{
x[++i]=ind;
return;
}
else if (a[ind].st == -1)
{
x[++i]=ind;
rez(a[ind].dr);
}
else if (a[ind].dr == -1)
{
rez(a[ind].st);
x[++i]=ind;
}
else
{
rez(a[ind].st);
x[++i]=ind;
rez(a[ind].dr);
}
}
int main()
{
//citire
fin >> n >> rad;
for (int j = 0; j<n; j++) fin >> a[j].st;
for (int j = 0; j<n; j++) fin >> a[j].dr;
rez(rad);
fout << x[1] << '\n';
x[0] = x[n+1] = -1;
for (int j = 1; j<=n ; j++)
{
fnl[x[j]].st = x[j-1];
fnl[x[j]].dr = x[j+1];
}
for (int j = 0; j<n ; j++) fout << fnl[j].st << ' ';
fout << '\n';
for (int j = 0; j<n; j++) fout << fnl[j].dr << ' ';
fout << '\n';
return 0;
}