Cod sursa(job #2275701)

Utilizator radumihaisirbuSirbu Radu-Mihai radumihaisirbu Data 3 noiembrie 2018 13:57:29
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

int str[250001][19], i, j, T[250001], n, m;

int c (int i, int j)
{
    int p = 1, k = 0;
    if (j == 0) return i;
    else {
        while(p <= j)
        {
            p *= 2;
            k++;
        }
            p /= 2;
            k--;
        return c(str[i][k], j - p);
    }

}

int main()
{
    fin >> n >> m;
    for (i=1; i<=n; i++)
    {
        fin >> str[i][0];
        T[i] = str[i][0];
    }

    for (i=1; i<=n; i++)
        for (j=1; j<18; j++)
            str[i][j] = str[str[i][j-1]][j-1];
    while(m--)
    {
        fin >> i >> j;
        fout << c(i, j) << "\n";
    }
    return 0;
}