Cod sursa(job #3198113)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 28 ianuarie 2024 13:16:51
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream cin("stramosi.in");
ofstream cout("stramosi.out");

#define MAXN 1<<5
#define MAXM 1<<18

int sp[MAXN+1][MAXM+1];

int main()
{
    int n, m;
    cin>>n>>m;
    int i;
    for(i=1; i<=n; i++)
        cin>>sp[0][i];
    int j;
    for(i=1; (1<<i)<=n; i++)
        for(j=1; j<=n; j++)
            sp[i][j]=sp[i-1][sp[i-1][j]];
    int q, p;
    for(i=1; i<=m; i++)
    {
        cin>>q>>p;
        j=0;
        while(p)
        {
            if(p&1)
                q=sp[j][q];
            j++;
            p>>=1;
        }
        cout<<q<<'\n';
    }
}