Cod sursa(job #2941480)
Utilizator | Data | 17 noiembrie 2022 20:03:38 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int dp[250001][19];
int main()
{
int n, q, i, j, k, p, x;
fin>>n>>q;
for(i=1;i<=n;i++)
{
fin>>dp[i][0];
}
for(k=1;(1<<k)<=n;k++)
{
for(i=1;i<=n;i++)
{
dp[i][k]=dp[dp[i][k-1]][k-1];
}
}
for(i=1;i<=q;i++)
{
fin>>p>>x;
int s=p;
for(k=18;k>=0;k--)
{
if(x>=(1<<k))
{
x-=(1<<k);
s=dp[s][k];
}
}
fout<<s<<"\n";
}
return 0;
}