Cod sursa(job #1437412)

Utilizator eneandradaEne Oana-Andrada eneandrada Data 17 mai 2015 17:19:45
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[30][250005]; //v[i][j] = al 2^i-lea stramos al lui j

int str(int q, int p)
{
    for(int i = 20; i > -1; --i)
        if(p & (1 << i))
            q = v[i][q];
    return q;
}

int main()
{
    int N, M, Q, P, i;

    f >> N >> M;
    for(i = 1; i <= N; ++i)
        f >> v[0][i];
    for(int j = 1; j < 20; ++j)
        for(i = 1; i <= N; ++i)
            v[j][i] = v[j-1][v[j-1][i]];
    for(i = 0; i < M; ++i)
    {
        f >> Q >> P;
        g << str(Q,P) << endl;
    }

    return 0;
}