Cod sursa(job #1803031)

Utilizator amaliarebAmalia Rebegea amaliareb Data 10 noiembrie 2016 21:37:32
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m,i,j,t[21][250001],p,q,pas,x;

int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++) f>>t[1][i];
    for(i=1;i<=n;i++)
    {
        for(j=2;j<=18;j++)
        {
            t[j][i]=t[j-1][t[j-1][i]];
        }
    }
    for(j=1;j<=18;j++) cout<<j<<' ';
    cout<<'\n';
    for(j=1;j<=18;j++)
    {
        for(i=1;i<=n;i++) cout<<t[j][i]<<' ';
        cout<<'\n';
    }
    for(i=1;i<=m;i++)
    {
        f>>q>>p;
        pas=1;
        pas=18;
        while(pas)
        {
            if(1<<(pas-1)<=p)
            {
                q=t[pas][q];
                p-=1<<(pas-1);
            }
            pas--;
        }
        g<<q<<'\n';
    }
    return 0;
}