Cod sursa(job #2899584)

Utilizator bianca2002Bianca bianca2002 Data 8 mai 2022 22:41:35
Problema Planeta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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

vector<pair<int, int>> v;
unordered_map<int, int> ht;
int in[500001], pre[500001];


 int fct(int inceput, int sfarsit) {
    static int k = 0;
    if (inceput > sfarsit)
        return 0;
    int ind = pre[k++];
    if (inceput == sfarsit)
        return ind;

    int j = ht[ind];

    int st = fct(inceput, j - 1 );
    int dr = fct(j + 1, sfarsit);
    v[ind-1] = {st,dr};

    return ind;

}

int main() {

    int n;
    f >> n;
    for (int i = 0; i < n; i++) {
        f >> in[i];
        ht[in[i]] = i;
    }
    for (int i = 0; i < n; i++)
        f >> pre[i];

    ht.reserve(1000);
    v.resize(n);

    fct(0, n - 1);

    for(auto it: v)
        g<<it.first<<" "<<it.second<<"\n";

}