Cod sursa(job #1078877)

Utilizator Iustin_BulimarFMI Iustin Bulimar Iustin_Bulimar Data 12 ianuarie 2014 11:45:53
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");

const int n_max=250001;
const int log_n_max=18;

int n, m, i, j, q, p, k, s[log_n_max][n_max];


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