Pagini recente » Cod sursa (job #2513531) | Cod sursa (job #2039053) | Cod sursa (job #959680) | Cod sursa (job #2483585) | Cod sursa (job #2093254)
#include<fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int A;
int N[250001][250001]={0};
int q,p;
int M;
void read()
{
in>>A>>M;
for(int i=1;i<=A;i++) in>>N[i][0];
}
int stramos(int q,int p) //al p-lea al lui q
{
int t=0;
int aux=q;
while(q&&p)
{
q=N[q][0];p--;t++;
N[aux][t]=q;
}
if(!p) return q;
return 0;
}
int stramos2(int q,int p)
{
int t=p;
for(int i=1;i<=t&&N[q][i];i++)
p--;
return stramos(q,p);
}
int main()
{
read();
for(int i=1;i<=M;i++)
{
in>>q>>p;
out<<stramos2(q,p)<<endl;
}
}