Pagini recente » Cod sursa (job #2481269) | Cod sursa (job #311979) | Cod sursa (job #2347830) | Cod sursa (job #2856956) | Cod sursa (job #1535456)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int a[250000][20], i, j, n, m, k, p, v[250001], q;
int main()
{
f>>n>>m;
for (i=1;i<=n;i++)
f>>a[1][i];
for (i=2;i<=20;i++)
for (j=1;j<=n;j++) {
a[i][j] = a[i-1][a[i-1][j]];
}
/*for (i=1;i<=4;i++) {
for (j=1;j<=n;j++)
g<<a[i][j]<<"\t";
g<<endl;
}*/
int ret;
for (i=1;i<=m;i++) {
f>>q>>p;
if (log2(p) == (int) log2(p))
g<<a[(int)log2(p)+1][q]<<"\n";
else {
int logaritm2p=(int)log2(p);
while (logaritm2p != 0) {
//PUTEREA CEA MAI APROPIATA, SCAD DIN P - 2^log2(p-2^k)
//q inlocuiesc cu q-2^log()
logaritm2p = (int)log2(logaritm2p);
}
//a[logaritm2p][q] = a[(int)log2(a[logaritm2p][q])][a[logaritm2p][q]];
g<<ret<<"\n";
}
}
return 0;
}