Cod sursa(job #2035701)

Utilizator dex4Darjan Catalin dex4 Data 9 octombrie 2017 19:24:56
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 250005

using namespace std;

int T[nmax];
int p=0, q=0, nr_str[nmax], n=0, m=0;

bool has_req(int q, int p){
    if(nr_str[q] >= p)
        return true;
    return false;
}

void solve(){
    int x=0;
    ifstream f("stramosi.in");
    f >> n >> m;
    for(int i=1; i<=n; i++){
        f >> x;
        if(x != 0){
            T[i] = x;
            nr_str[i] = nr_str[i] + nr_str[x] + 1;
        }
    }
    ofstream g("stramosi.out");
    for(int i=1; i<=m; i++){
        f >> q >> p;
        if(!has_req(q, p))
            g << 0 << "\n";
        else{
            int nrp=0, parent = 0;
            while(nrp < p){
                parent = T[q];
                q = parent;
                nrp++;
            }
            g << parent << "\n";
        }
    }
    f.close();
    g.close();
}

int main()
{
    solve();
    return 0;
}