Cod sursa(job #2771622)

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


using namespace std;


#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

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

int n,q;
int dp[300005][30];
int tata[300005];

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()
{
    ios_base::sync_with_stdio(false);
    f.tie(NULL);
    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";
    }
    f.close();
    g.close();
    return 0;
}