Untitled
unknown
c_cpp
2 years ago
973 B
7
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...