Cod sursa(job #2467334)

Utilizator FlaviusFeteanFetean Flavius FlaviusFetean Data 3 octombrie 2019 23:36:14
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#define NMAX 250003
#define logN 19

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

int A[logN][NMAX];

int main()
{
    int n, m, i, p, q, p2 = 1, k;
    fin >> n >> m;
    for(i = 1; i <= n; i++) fin >> A[0][i];
    for(k = 1; p2 <= n; k++) {
        for(i = 1; i <= n; i++)
            A[k][i] = A[k - 1][A[k-1][i]];
        p2 *= 2;
    }

    for(i = 1; i <= m; i++){
        fin >> q >> p;
        for(k = 18; k >= 0; k--)
            if(p & (1<<k)) q = A[k][q];
        fout << q << "\n";
    }

    return 0;
}