Cod sursa(job #1684973)

Utilizator TonisonIlle Antoniu Nicolae Tonison Data 11 aprilie 2016 13:34:36
Problema Lowest Common Ancestor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
    int n;

    ifstream f("findmin.in");
    ofstream g("findmin.out");
    f>>n;
    vector<int> v(n), inv(n);

    for(int i = 0; i < n; ++i){
        f >> v[i];
        --v[i];
        inv[v[i]] = i;
    }

    vector<int> rez(n);

    rez[inv[0]] = -2;

    int poz_min = inv[0];

    for(int i = 1; i < n; ++i){
        if(inv[i] > poz_min){
            rez[inv[i]] = poz_min;
        }
        else{
            rez[inv[i]] = -2;
            poz_min = inv[i];
        }
    }

    for(int i = 0; i < n; ++i){
        g << rez[i]+1 << ' ';
    }
    return 0;
}