Cod sursa(job #3239945)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 9 august 2024 14:36:19
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
#include <vector>
#define nmax 250002
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,q,s,a,dp[nmax][20];
vector<int>v[nmax];
void dfs(int nod,int k){
    for(auto i:v[nod]){
        for(int j=2;j<=k;j++)
            dp[i][j]=dp[nod][j-1];
        dp[i][1]=nod;
        dfs(i,k+1);
    }
}
int main()
{
    cin>>n>>q;
    for(int i=1;i<=n;i++){
        cin>>s;
        v[s].push_back(i);
    }
    dfs(0,0);
    while(q--){
        cin>>a>>s;
        cout<<dp[a][s]<<'\n';
    }
    return 0;
}