Cod sursă (job #148792)

Utilizator avatar Dragos1998 Dragos Radu Dragos1998 IP ascuns
Problemă Pointeri Compilator cpp | 0,75 kb
Rundă Arhiva de probleme Status evaluat
Dată 9 iun. 2015 16:27:32 Scor 100
#include <fstream>

using namespace std;
ifstream in ("pointeri.in");
ofstream out ("pointeri.out");
int st[200000],dr[200000],prim,ultim;
void ordine (int p)
{
    if(st[p]!= -1)
        ordine (st[p]);
    int fd = dr[p];
    if(prim == -1)
        prim = p;
    else
    {
        st[p] = ultim;
        dr[ultim] = p;
    }
    dr[p] = -1;
    ultim = p;
        if(fd != -1)
            ordine (fd);
}
int main()
{
    int i,n,rad;
    in>>n>>rad;
    for(i=0; i<n; i++)
        in>>st[i];
    for(i=0; i<n; i++)
        in>>dr[i];
    prim = ultim = -1;
    ordine (rad);
        out<<prim<<"\n";
    for(i=0; i<n; i++)
        out<<st[i]<<" ";
    out<<"\n";
    for(i=0; i<n; i++)
        out<<dr[i]<<" ";

    return 0;
}