Cod sursă (job #77936)

Utilizator avatar cristinamatei Matei Cristina Gabriela cristinamatei IP ascuns
Problemă Pointeri Compilator cpp | 0,78 kb
Rundă Arhiva de probleme Status evaluat
Dată 9 oct. 2014 09:20:06 Scor 100
#include <fstream>

using namespace std;

ifstream in("pointeri.in");
ofstream out("pointeri.out");

int st[200000], dr[200000], N, rad, ultim, prim = -1;

void afisare()
{
out << prim <<'\n';
    for ( int i = 0; i < N; i++ )
        out << st[i]<<' ';
    out << '\n';
    for ( int j = 0; j < N; j++ )
        out << dr[j]<<' ';
}

void inordine(int p)
{
    if ( st[p] != -1 )
        inordine( 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 )
        inordine(fd);
}

int main()
{
    in >> N >> rad;
    for( int i = 0; i < N; i++ )
        in >> st[i];
    for ( int j = 0; j < N; j++ )
        in >> dr[j];
    inordine(rad);
    afisare();
    return 0;
}