Cod sursa(job #2060568)

Utilizator alextodoranTodoran Alexandru Raul alextodoran Data 8 noiembrie 2017 14:49:32
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#define D1 250002
#define D2 20
using namespace std;

int n, m, ma[D2][D1], q, p, s;

int main()
{
    ifstream fin ("stramosi.in");
    ofstream fout ("stramosi.out");
    fin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        fin >> ma[0][i];
    }
    for(int i = 1; i <= n; i++)
    {
            for(int j = 1; j <= n; j++)
            {
                ma[i][j] = ma[i - 1][ma[i - 1][j]];
            }
    }
    for(int i = 1; i <= m; i++)
    {
        fin >> q >> p;
        s = q;
        for(int j = 0, k = 1; k <= p; k *= 2, j++)
        {
            if(k & p)
                s = ma[j][s];
        }
        fout << s << "\n";
    }
    return 0;
}