Pagini recente » Cod sursa (job #677005) | Borderou de evaluare (job #1567885) | Cod sursa (job #1301044) | Cod sursa (job #2380396) | Cod sursa (job #2684693)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
const int N=25e4+5;
int tata[N],str[20][N],n;
int main()
{
int m;
f>>n>>m;
for(int i=1;i<=n;i++)
{
f>>tata[i];
str[0][i]=tata[i];
}
///precalcularea
for(int k=1;k<=log2(n);k++)
{
for(int i=1;i<=n;i++)
{
str[k][i]=str[k-1][str[k-1][i]];
}
}
///end_precalc
for(int i=1;i<=m;i++)
{
int q,p,l;
f>>q>>p;
for(int t=0;t<=18;t++)
{
if(p&(1<<t))
q=str[t][q];
}
g<<q<<"\n";
}
return 0;
}