Cod sursa(job #3302246)

Utilizator Ilinca_Radu_2022Radu Ilinca-Rucsandra Ilinca_Radu_2022 Data 5 iulie 2025 11:10:39
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define MAX 300000
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, m, i, x, y, r[MAX+5];
vector<int>v[MAX+5], s;
set<pair<int, int>>q[MAX+5];
void dfs(int nod) {
    s.push_back(nod);
    int lg=s.size();
    for (auto x:q[nod]) r[x.second]=s[lg-1-min(x.first, lg-1)];
    for (auto x:v[nod]) dfs(x);
    s.pop_back();
}
int main()
{
    fin>>n>>m;
    for (i=1; i<=n; i++) {
        fin>>x;
        v[x].push_back(i);
    }
    for (i=1; i<=m; i++) {
        fin>>x>>y;
        q[x].insert({y, i});
    }
    dfs(0);
    for (i=1; i<=m; i++) fout<<r[i]<<'\n';
    return 0;
}