Cod sursa(job #1505162)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 18 octombrie 2015 20:50:16
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <vector>
#include <stdio.h>

#define NMax 250010
#define in "stramosi.in"
#define out "stramosi.out"
#define buffer 10000

using namespace std;

ifstream f(in);
ofstream g(out);

int n, m, elem, d[20][NMax];

int main()
{
    f>>n>>m;
    
    for (int i=1; i<=n; i++)
        f>>d[0][i];
    
    int lg = 1;
    for (; (1<<lg) <= n; lg++);
    lg--;
    
    for (int i=1; i<=lg; i++)
        for (int j=1; j<=n; j++)
            d[i][j] = d[i-1][d[i-1][j]];
    
    int p=0, q=0;
    for (int i=1; i<=m; i++) {
        //f>>p>>q;
        
        int x=0;
        while (q != 0) {
            if ((q & 1) == 1)
                p=d[x][p];
            
            q /= 2;
            x++;
        }
        
        g<<p<<"\n";
    }
    
    return 0;
}