Cod sursa(job #3283287)
| Utilizator | Data | 8 martie 2025 21:31:16 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define cin fin
#define cout fout
int str[20][250002];//i , j la dist i din nodu j
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>str[0][i];
}
for(int i=1;i<=19;i++){
for(int j=1;j<=n;j++)
str[i][j]=str[i-1][str[i-1][j]];
}
while(q--){
int p,nod;
cin>>nod>>p;
int i=20;
int ans=nod;
while(i>=0){
if(((1<<i)&p))
ans=str[i][ans];
i--;
}
cout<<ans<<'\n';
}
}
