Cod sursa(job #2754609)

Utilizator ptr22222Petru Popescu ptr22222 Data 26 mai 2021 08:38:53
Problema Farfurii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int nmax = 500002;
int inordine[nmax], preordine[nmax], poz[nmax], copii[nmax][3];

int arbore(int r, int s, int d)
{
    int vampir = preordine[r];
    int p = poz[vampir];
    if(p != s)
    {
        copii[vampir][1] = arbore(r + 1, s, p - 1);
    }
    if(p != d)
    {
        copii[vampir][2] = arbore(r + p - s + 1, p + 1, d);
    }
    return vampir;
}


int main() {
    int n;
    in >> n;
    int i;
    for(i = 0; i < n; i++)
    {
        in >> inordine[i];
        poz[inordine[i]] = i;
    }
    for(i = 0; i < n; i++)
    {
        in >> preordine[i];
    }
    int a = arbore(0, 0, n - 1);
    for(i = 1; i <= n; i++)
    {
        out << copii[i][1] << ' ' << copii[i][2] << '\n';
    }
    return 0;
}