Cod sursa(job #3301690)
Utilizator | Data | 29 iunie 2025 09:45:10 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
int dp[20][250055];
int main()
{
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i)
{
cin>>dp[0][i];
}
for(int p=1;p<20;++p)
{
for(int i=1;i<=n;++i)
{
dp[p][i]=dp[p-1][dp[p-1][i]];
}
}
for(int i=1;i<=m;++i)
{
int c=-1,nd,pr;
cin>>nd>>pr;
while(pr>0)
{
++c;
if(pr%2==1)
{
nd=dp[c][nd];
}
pr/=2;
}
cout<<nd<<"\n";
}
return 0;
}