Pagini recente » Cod sursa (job #992846) | Cod sursa (job #795508) | Cod sursa (job #1354562) | Cod sursa (job #805509) | Cod sursa (job #1462719)
#include<fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int str[20][250005],n,m;
void stramosi(){
//str[k][i]= stramosul de gradul 2^k al lui i
for(int k=1;k<=19;k++){
for(int i=1;i<=n;i++){
str[k][i]=str[ k - 1 ][ str[k-1][i] ];
}
}
return ;
}
int nod,k,i,grad;
int main(){
fin>>n>>m;
for(i=1;i<=n;i++){
fin>>str[0][i];
}
stramosi();
for(i=1;i<=m;i++){
fin>>nod>>grad;
while(grad>0){
for(k=1;(1<<k)<=grad;k++){}
k--;
grad-=(1<<k);
nod=str[k][nod];
}
fout<<nod<<"\n";
}
return 0;
}