Cod sursa(job #2771603)

Utilizator marcumihaiMarcu Mihai marcumihai Data 28 august 2021 12:21:36
Problema Stramosi Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,q;
int dp[200005][20];
int tata[200005];

int query(int nod , int pasi)
{
    if(pasi==0 || nod==0)
        return nod;

    int exp=log2(pasi);
    int acum=pow(2 , exp);

    int tata=dp[nod][exp];
    query(tata , pasi-acum);


}

int main()
{
    f>>n>>q;
    for(int i=1;i<=n;++i)
    {
        int x;
        f>>x;
        tata[i]=x;
    }
    int put=log2(n);
    for(int i=1;i<=n;++i)
    {
        if(tata[i]==0)
            continue;
        else
        {
            for(int putere=0;putere<=put;++putere)
            {
                int put2=pow(2 , putere);
                dp[i][putere]=query(tata[i] , put2-1);
                if(dp[i][putere]==0)
                    break;
            }
        }
    }
    for(int qu=1;qu<=q;++qu)
    {
        int vf , nr;
        f>>vf>>nr;
        g<<query(vf , nr)<<"\n";
    }

    return 0;
}