Untitled

 avatar
unknown
c_cpp
2 years ago
973 B
4
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[maxn];
bool mark[maxn];
int cnt , ans[maxn] ,q;

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