Cod sursa(job #3262573)
| Utilizator | Data | 10 decembrie 2024 19:45:33 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int tata[250001][31];
int main()
{
int n,m,i,nod,bit,a;
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>tata[i][0];
}
for(i=1;i<=30;i++){
for(nod=1;nod<=n;nod++){
tata[nod][i]=tata[tata[nod][i-1]][i-1];
}
}
for(i=1;i<=m;i++){
cin>>nod>>a;
for(bit=30;bit>=0;bit--){
if(a&(1<<bit)){
nod=tata[nod][bit];
}
}
cout<<nod<<"\n";
}
return 0;
}
