Pagini recente » Cod sursa (job #2054916) | Cod sursa (job #1218577) | Cod sursa (job #3133524) | Cod sursa (job #2084169) | Cod sursa (job #2035700)
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 250005
using namespace std;
int T[nmax];
int p=0, q=0, nr_str[nmax], n=0, m=0;
bool has_req(int q, int p){
if(nr_str[q] >= p)
return true;
return false;
}
void solve(){
int x=0;
ifstream f("stramosi.in");
f >> n >> m;
for(int i=1; i<=n; i++)
nr_str[i] = 0;
for(int i=1; i<=n; i++){
f >> x;
if(x != 0){
T[i] = x;
nr_str[i] = nr_str[i] + nr_str[x] + 1;
}
}
ofstream g("stramosi.out");
for(int i=1; i<=m; i++){
f >> q >> p;
if(!has_req(q, p))
g << 0 << "\n";
else{
int nrp=0, parent = 0;
while(nrp < p){
parent = T[q];
q = parent;
nrp++;
}
g << parent << "\n";
}
}
f.close();
g.close();
}
int main()
{
solve();
return 0;
}