Pagini recente » Cod sursa (job #1035154) | Cod sursa (job #1374504) | Cod sursa (job #1495223) | Cod sursa (job #1144157) | Cod sursa (job #916097)
Cod sursa(job #916097)
#include<fstream>
#include<vector>
using namespace std;
ifstream f("stramosi.in"); ofstream g("stramosi.out");
const int NMAX = 250009;
int n, t, q, p, x[NMAX];
vector<int> v[NMAX];
inline void read_Data() {
f >> n >> t;
for(int i = 1; i <= n; ++i) f >> x[i];
}
inline void solve() {
for(int i = 1; i <= n; ++i) {
int k = i;
while(x[k] > 0) {
v[i].push_back(x[k]);
k = x[k];
}
}
}
inline void query() {
while(t --) {
f >> q >> p;
if(v[q].size() <= p - 1) g << "0\n";
else g << v[q][p - 1] << '\n';
}
}
int main() {
read_Data();
solve();
query();
g.close();
return 0;
}