Pagini recente »
Istoria paginii runda/s13_6_tema
|
Istoria paginii runda/s10_11c/clasament
|
Monitorul de evaluare
|
Borderou de evaluare (job #528058)
|
Cod sursă (job #514503)
Cod sursă (job
#514503)
#include <fstream>
using namespace std;
int st[200000],dr[200000];
ifstream in ("pointeri.in");
ofstream out ("pointeri.out");
void constr(int node,int *first,int *last)
{
int ff,ll;
if (st[node]!=-1)
{
constr(st[node],&ff,&ll);
dr[ll]=node;
st[node]=ll;
*first=ff;
}
else
*first=node;
if (dr[node]!=-1)
{
constr(dr[node],&ff,&ll);
st[ff]=node;
dr[node]=ff;
*last=ll;
}
else
*last=node;
}
int main()
{
int n,i,rad,first,last;
in>>n>>rad;
for (i=0;i<n;i++)
in>>st[i];
for (i=0;i<n;i++)
in>>dr[i];
constr(rad,&first,&last);
out<<first<<'\n';
for (i=0;i<n;i++)
out<<st[i]<<" ";
out<<'\n';
for (i=0;i<n;i++)
out<<dr[i]<<" ";
return 0;
}