Pagini recente » Cod sursa (job #67830) | Cod sursa (job #891041) | Istoria paginii runda/moisil2009-9/clasament | Cod sursa (job #3191480) | Cod sursa (job #389937)
Cod sursa(job #389937)
#include <fstream>
using namespace std;
int v[20][250010];
int main()
{
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n, m,z;
f>>n>>m;
int i, k, j, cn=n;
for (i=1; i<=n; i++) f>>v[0][i];
for (k=0; cn; k++) cn/=2;
for (i=1; i<=k; i++)
for (j=1; j<=n; j++)
if (v[i-1][j])
v[i][j]=v[i-1][v[i-1][j]];
int p, q;
while (m--)
{
f>>q>>p;
j=0;
while (z=(q && p))
{
if (p%2)
q=v[j][q];
j++;
p/=2;
}
g<<q<<'\n';
}
}