Cod sursa(job #2956546)

Utilizator DemonulCristian Razvan Gavrilescu Demonul Data 19 decembrie 2022 18:53:38
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

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

int M[18][250000];
int main()
{
    int n , m;
    cin >> n >> m;
    int i;
    for(i = 1; i <= n; i ++)
    {
        cin >> M[0][i];
    }
    int j;

    for(i = 1; (1 << i) <= n; i ++)
    {
        for(j = 1; j <= n; j ++)
        {
           int a = M[i-1][j];
           M[i][j] = M[i - 1][a];
        }
    }
    int l;
    int p , q;
    int str = 0;
    for(l = 1; l <= m; l ++)
    {
        cin >> q >> p;
        str = q;
        for(i = 0; (1 << i) <= p; i ++)
        {
            if(p& (1 << i))
            {
                str = M[i][str];
            }
        }
        cout << str << '\n';
    }
    return 0;
}