Pagini recente » Cod sursa (job #1504491) | Cod sursa (job #2394015) | Cod sursa (job #1693375) | Cod sursa (job #630924) | Cod sursa (job #1080985)
//
// main.c
// stramosi
//
// Created by Alexandru Bâgu on 1/13/14.
// Copyright (c) 2014 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
#include <math.h>
#define MAX 250001
#define MAXL 18
int T[MAXL][MAX];
int main(int argc, const char * argv[])
{
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
int n, m;
scanf("%d %d", &n, &m);
int i, j, q, w, x = log2(n);
for(i = 1; i <= n; i++)
{
scanf("%d", &q);
T[0][i] = q;
}
for(i = 1; i <= x; i++)
for(j = 1; j <= n; j++)
T[i][j] = T[i-1][T[i-1][j]];
for(i = 0; i < m; i++)
{
scanf("%d %d", &q, &w);
w <<=1;
for(j=0; j<= x && q; j++)
if((w >>= 1) & 1)
q=T[j][q];
printf("%d\n", q);
}
return 0;
}