Pagini recente » Cod sursa (job #2679817) | Cod sursa (job #2353278) | Cod sursa (job #2835121) | Cod sursa (job #1825730) | Cod sursa (job #2370294)
#include <vector>
#include <fstream>
using namespace std;
int main(){
int n, m, p, q;
fstream f("stramosi.in", fstream::in), g("stramosi.out", fstream::out);
f >> n >> m;
vector<int> stramosi(n);
for(int i = 0; i < n; i++){
f >> stramosi[i];
}
for(int i = 0; i < n; i++){
if(stramosi[i] != 0){
stramosi[i] = stramosi[stramosi[i] - 1] + 1;
}
}
for(int z = 0; z < m; z++){
f >> q >> p;
q--;
if(p > stramosi[q]){
g << 0 << endl;
continue;
}
for(int i = q - 1; i >= 0; i--){
if(stramosi[i] == stramosi[q] - p){
g << i + 1 << endl;
break;
}
}
}
f.close();
g.close();
}