Cod sursa(job #2627363)
| Utilizator | Data | 10 iunie 2020 15:30:05 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<bits/stdc++.h>
using namespace std;ifstream fin("stramosi.in");ofstream fout("stramosi.out");const int nmax=250000;int n,m,dp[nmax+5][19];int main()
{fin>>n>>m;for(int i=1;i<=n;++i)
{fin>>dp[i][0];}
for(int j=1;j<=18;++j)
{for(int i=1;i<=n;++i)
{dp[i][j]=dp[dp[i][j-1]][j-1];}}
for(int i=1;i<=m;++i)
{int p,q;fin>>q>>p;int stramos=q,c=0;while(p!=0)
{if(p&1!=0)
{stramos=dp[stramos][c];}
p>>=1;++c;}
fout<<stramos<<'\n';}
fin.close();fout.close();return 0;}
