Cod sursa(job #2159512)

Utilizator stefii_predaStefania Preda stefii_preda Data 10 martie 2018 23:27:11
Problema Stramosi Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

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

const int N = 250005;
int str[N][20], n, m;

int main()
{
    in >> n >> m;
    int i, j;
    for(i = 1; i <= n; i++)
        in >> str[i][0];
    for(j = 1; (1<<j) < n; j++)
        for(i = 1; i <= n; i++)
            str[i][j] = str[str[i][j-1]][j-1];
    int p, q, put;
    for(i = 1; i <= m; i++)
    {
        in >> p >> q;
        put = 18;
        while(put >= 0)
        {
            if((1<<put) <= q)
            {
                q -= (1<<put);
                p = str[p][put];
            }
            put--;
        }
        out<<p<<"\n";
    }
    return 0;
}