Untitled

 avatar
unknown
c_cpp
2 years ago
972 B
5
Indexable
#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(false) ,cin.tie(0) , cout.tie(0)
using namespace std ;
const int maxn = 1e6+7;
vector<int> adj[maxn] , vec;
vector<pair<int,int>> p;
bool mark[maxn];
int cnt , ans[maxn] ,q;

int dfs(int u){
    mark[u] = true;
    vec.push_back(u);
    for(int i = 0 ; i < q ; i++){
        if(p[i].first == u)
            ans[i] = vec[vec.size()-p[i].second-1];
    }
    for(auto w : adj[u]){
        if(!mark[w]){
            dfs(w);
        }
    }
    vec.pop_back();
}
int main(){
    ios;
    int n , a , b , u , v;
    cin >> n >> q;
    for(int i = 0 ; i < n ; i++){
        cin >> u >> v;
        u--;v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    for(int i = 0 ; i < q ; i++){
        cin >> a >> b;
        a--;
        p.push_back({a , b});
    }
    dfs(0);
    for(int i = 0 ; i < q ; i++){
        cout << ans[i]+1 << '\n';
    }
    return 0;
}
Editor is loading...