Cod sursă (job #77945)

Utilizator avatar Cezarm Cezar Mihalcea Cezarm IP ascuns
Problemă Pointeri Compilator cpp | 0,65 kb
Rundă Arhiva de probleme Status evaluat
Dată 9 oct. 2014 09:44:22 Scor 100
#include<fstream>
using namespace std;
ifstream f("pointeri.in");
ofstream g("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;
    f>>n>>rad;
    for(i=0;i<n;i++)
        f>>st[i];
    for(i=0;i<n;i++)
        f>>dr[i];
    prim=ultim=-1;
    ordine(rad);
    g<<prim<<"\n";
    for(i=0;i<n;i++)
        g<<st[i]<<" ";
    g<<"\n";
    for(i=0;i<n;i++)
        g<<dr[i]<<" ";
    return 0;
}