Cod sursa(job #2786528)

Utilizator AndreidreiGresoiu Liviu-Andrei Andreidrei Data 21 octombrie 2021 09:49:20
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define ll long long
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,m,a[20][250001],i,j,k=1;
int main()
{
in>>n>>m;
for(i=1;i<=n;i++)
    in>>a[0][i];
for(j=1;k;j++)
{
    k=0;
    for(i=1;i<=n;i++)a[j][i]=a[j-1][a[j-1][i]],k|=a[j][i];
}
while(m--)
{
    in>>i>>j,k=-1;
    while(j>=(1<<(++k)))
        if(j&(1<<k))
            i=a[k][i];
    out<<i<<'\n';
}
}