Pagini recente » Cod sursa (job #2438498) | Cod sursa (job #2985061) | Cod sursa (job #531581) | Cod sursa (job #2505563) | Cod sursa (job #3134527)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n, m;
int v[250005];
vector<int> ans[250005];
int main()
{
in>>n>>m;
for(int i = 1; i<=n; i++)
{
in>>v[i];
}
int x, y;
for(int i = 1; i<=n; i++)
{
x = v[i];
ans[i].push_back(x);
while(x != 0 && x != v[x])
{
x = v[x];
ans[i].push_back(x);
}
}
/*for(int i = 1; i<=n; i++)
{
for(auto j : ans[i])
{
out<<j<<" ";
}
out<<'\n';
}*/
while(m--)
{
in>>x>>y;
y--;
if(y >= ans[x].size())
{
out<<0<<'\n';
}
else
{
out<<ans[x][y]<<'\n';
}
}
return 0;
}