Cod sursa(job #3207284)

Utilizator CobzaruAntonioCobzaru Paul-Antonio CobzaruAntonio Data 25 februarie 2024 18:45:01
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream cin ("stramosi.in");
ofstream cout ("stramosi.out");
int n,m;
int tata[20][250005];
int query(int p,int q)
{
    for(int i=19;i>=0;i--)
        if(p&(1<<i))
            q = tata[i][q];
    return q;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m;
    for(int i=1;i<=n;i++)
        cin >> tata[0][i];
    for(int i=1;i<=19;i++)
        for(int j=1;j<=n;j++)
            tata[i][j] = tata[i-1][tata[i-1][j]];
    for(int i=1;i<=m;i++)
    {
        int q,p;
        cin >> q >> p;
        cout << query(p,q) << '\n';
    }
    return 0;
}