Mai intai trebuie sa te autentifici.

Cod sursa(job #2472753)

Utilizator dani.sterninDaniela Sternin dani.sternin Data 12 octombrie 2019 20:46:34
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int main()
{
    int n, m, q, p, i, j;
    ifstream f("stramosi.in");
    ofstream g("stramosi.out");
    f >> n >> m;
    int l = round(log2(n));
    int a[l+1][n+1];
    for (j = 0; j <= n; j++)
    {
        for(i = 0; i <= l; i++)
        
            a[i][j] = 0;  
    
    }

    for (j = 1; j <= n; j++)
    {
        f >> a[1][j];
        i = 2;
        while (i <= l)
        {   
            a[i][j] = a[i-1][a[i-1][j]];
            i++;

        }
    }

  
    while (m > 0)
    {
        f >> q >> p;
        while (p > 1)
        {
            int exp = round(log2(p));
            q = a[exp][q];
            p = p >> exp;   

        }
        
        if (p == 0)
            g << a[1][q] << endl;
        else
            g << a[p][q] << endl;
        m--;
     
    }

    

}